从 table join 获取唯一数据对

Get unique data pair from table join

我正在尝试在 SQL 中制作一个匹配程序,它输出以下数据

人民 table 有一个独特的时间戳列

我写了

Create Table match As
  Select a.street, a.pet, a.food, b.food
  From People a, People b
  Where a.street = b.street And a.pet = b.pet And a.time <> b.time
  Order by a.time;

示例table

Street Pet Food Time
maple dog pizza 2021/07/28 12:55:56 PM MDT
maple cat pizza 2021/07/28 3:34:56 PM MDT
maple dog french fries 2021/07/28 12:34:56 PM MDT
abney dog pizza 2021/07/28 5:34:56 PM MDT
abney cat pizza 2021/07/28 12:45:56 PM MDT
abney dog french fries 2021/07/28 2:34:56 PM MDT

例如它输出这个

maple|dog|pizza|french fries
maple|dog|french fries|pizza (duplicate)
abney|dog|pizza|french fries
abney|dog|french fries|pizza (duplicate)

我怎样才能让它不 return 重复值?

编辑:我可能不想使用“Distinct”,因为有很多不重复的值可以被标记为重复(因为它的输出相同但来自不同的人)

而不是运算符 <> 使用 >(或 <)来比较 time
还可以使用带有 ON 子句的正确连接:

SELECT p1.street, p1.pet, p1.food, p2.food
FROM People p1 INNER JOIN People p2
ON p2.street = p1.street AND p2.pet = p1.pet AND p2.time > p1.time
ORDER BY p1.time;

参见demo