我试图选择user_from
存在的行作为user_to
在以后创建的其他行中。为每个组合选择第一行
此查询为我提供了行。
SELECT A
FROM db.table A
LEFT JOIN db.table B
ON A.user_to = B.user_from
AND A.user_from = B.user_to
AND A.createdAt < B.createdAt
WHERE B.user_to IS NOT NULL AND B.user_from IS NOT NULL;
但是,我想得到每个组合user_to/user_from
的第一行。
E.g.如果有喜欢的一些行:
user_to = 1, user_from = 2
user_to = 2, user_from = 1
user_to = 2, user_from = 1
user_to = 1, user_from = 2
我想只是第一个创建(如createdAt
定义)。
我试过使用GROUP BY user_from
,但是这排除了每个user_from
的所有其他组合。
请使用'DISTINCT'来选择列值 –