gpt4 book ai didi

mysql - 从mysql查询中获取匹配记录

转载 作者:行者123 更新时间:2023-11-29 09:08:03 28 4
gpt4 key购买 nike

我有具有以下结构的数据库表,用于匹配约会事件中的人员:

ID | EVENT | USERS_ID | MATCH_ID | GENDER
1 | 27 | 54 | 1245 | Female
2 | 27 | 54 | 21 | Female
3 | 27 | 21 | 45 | Male
4 | 27 | 21 | 54 | Male

我正在尝试编写可以为我提供匹配项的查询。例如,从上面的数据来看,用户 54 与用户 21 匹配,因为 54 选择了 21,而 21 选择了 54。

我需要传递 USER_ID 和 EVENT 作为输入,并获取与该用户匹配的 MATCH_ID 列表。所以,

SELECT match_id FROM……. WHERE users_id = 54 AND event = 27

我还需要知道哪些用户没有获得任何匹配。这将是一个单独的查询。从上面的示例中,用户 45 没有相互匹配。

我和这个问题已经斗争了一段时间了。任何关于这方面的想法都会很棒。

谢谢。

最佳答案

尚未测试,但我认为这应该适合您:

SELECT t2.users_id FROM 
tbl t1
INNER JOIN tbl t2
ON t1.users_id = t2.match_id AND t1.match_id = t2.users_id
WHERE t2.event = 27
AND t1.users_id = 54;

此外,为了查找所有没有任何匹配项的用户,这可能会起作用:

SELECT t1.match_id
FROM
tbl t1
LEFT JOIN
tbl t2
ON t1.match_id = t2.users_id
WHERE t2.id IS NULL;

这里的一般原则是将表与其自身连接起来,并以这种方式查找匹配项。

编辑:做了一些更正,相信这对您来说应该很有效。

编辑 2:这是最后的更正,我相信它应该可以为您提供所有信息。

选择*来自事件匹配 t1内连接 event_matches t2开启 t1.users_id = t2.matches 且 t1.matches = t2.users_id 且 t1.event_id = t2.event_id其中 t2.event_id = 45和 t1.users_id = 1239;

关于mysql - 从mysql查询中获取匹配记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6471006/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com