考虑应用Tinder和以下数字:
(User_id, target_id)
(1,2);
(2,1);
(3,5)
(5,3);
(4,1);
这意味着1和2匹配,3和5匹配,但不是4和1。
现在我的问题。我目前在MySQL数据库中有两个表。 User
和Likes
。
其中User
有一堆值,但id
是重要值(图片1)。
Likes
有两个值:user_id
和target_id
(图片2)。
我应该如何处理从User
到Likes
列的数据?这会产生target_id
和user_id
的{{1}} Likes
具有与id
User
相同的值。我是否正确地去了这个?
我知道一个有一堆列,另一个有两个,这是我无法理解的地方。
答案 0 :(得分:0)
你的问题有点模糊。实际上我不知道你是否要过滤掉未配对的用户,或者你只是想将用户信息包含在“赞”中。我想你想找到彼此相似的用户对。 为此,您可以使用如下查询:
CREATE TEMPORARY TABLE LikeEachOther(
SELECT DISTINCT L1.user_id, L1.target_id
FROM Likes L1, Likes L2
WHERE L1.user_id = L2.target_id and L2.user_id = L2.target_id
);
SELECT *
FROM LikeEachOther LEO, User U1, User U2
WHERE U1.User_id = LEO.USer_id and U2.User_id = LEO.target_id