一直在绞尽脑汁地寻找一个能找到匹配行的查询。
我有一张桌子叫likes:
id|UserId|LikeUserId|Date|
查询以检索所有喜欢我的人:
SELECT * FROM ve_wholikes l
JOIN ve_users u ON l.UserId=u.UserId
WHERE l.LikeUserID = '$loginid_session'
查询以检索我喜欢的每个人:
SELECT * FROM ve_wholikes l
JOIN ve_users u ON l.LikeUserId=u.UserId
WHERE l.UserID = '$loginid_session'
要找出匹配的每一行(我喜欢它们&它们喜欢我),需要什么查询?
最佳答案
您可以将ve_wholikes
表连接到UserId = LikeUserId
上的自身,反之亦然,以找到彼此的喜好。
SELECT l1.*, u.* FROM
ve_wholikes l1
INNER JOIN ve_wholikes l2 ON l1.UserId = l2.LikeUserId AND l1.LikeUserId = l2.UserId
INNER JOIN ve_users u ON l1.LikeUserId = u.UserId
WHERE l1.UserId = ?;
ve_users
表中的记录将是喜欢您的用户。我刚刚选择了一个ve_wholikes
表。如果您需要查看他们喜欢您的日期,也可以从l2
中选择列。关于php - 如何在Mysql表中找到匹配的数据行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43597940/