gpt4 book ai didi

mysql - 从mysql查询结果中排除结果

转载 作者:行者123 更新时间:2023-11-29 06:44:34 25 4
gpt4 key购买 nike

感谢阅读。

我有两个 sql 表。群组和群组成员

组表有组的详细信息。例如:

group_id - group_name
1 music
2 video
3 funny

群组成员拥有订阅的用户。例如

id - group_id - user_id
1 1 5
2 3 8

用户 5 是 music 的成员,用户 8 是 funny 的成员。我想向用户显示他尚未订阅的组。在这种情况下,它应该对用户来说是视频和有趣的 5

我试过了

SELECT gr.*, gm.* FROM groups gr
LEFT JOIN groupmembers gm
ON gm.group_id = gr.group_id
WHERE gm.user_id != 5

但它显示了所有内容并重复了一些行。我什至不确定我应该使用 LEFT JOIN 还是其他东西。

正确的做法是什么?

谢谢!

最佳答案

SELECT gr.group_name
FROM groups gr
WHERE gr.group_id NOT IN (
SELECT gm.group_id
FROM groupmembers gm
WHERE gm.user_id = 5
)

应该这样做,基本上获取用户所属的所有组 ID,然后执行 NOT IN 以排除它们。您可以使用 JOIN 来完成,但我认为这更具可读性。

关于mysql - 从mysql查询结果中排除结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19413394/

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