sql与外键表联接

克里斯

我想从数据库中选择所有带有结尾的电子邮件的用户,@gmail.com这些电子邮件尚未包含在具有groupID4的组中

问题是我的user_to_group表看起来像这样:

userID | groupID
--------------------
1      | 5
1      | 4
1      | 3
2      | 3
2      | 6

使用groupID4的用户被排除在外,但由于它们也属于其他组,因此无论如何都将选择它们。在此示例中,我只需要带userID2的用户

是否可以排除第4组中的用户,而与其他组无关?

SELECT * FROM wcf13_user user_table
RIGHT JOIN wcf13_user_to_group ON (wcf13_user_to_group.userID = user_table.userID && groupID != 4 )
WHERE user_table.email LIKE "%@gmail.com"
谢尔盖·卡里尼琴科(Sergey Kalinichenko)

是的,您可以使用EXISTS子查询来做到这一点

SELECT *
FROM wcf13_user user_table u
WHERE user_table.email LIKE "%@gmail.com" -- Has a gmail account
  AND NOT EXISTS (                        -- Is not a member of group #4
       SELECT *
       FROM wcf13_user_to_group g
       WHERE u.userID=g.userID AND groupID = 4
  )

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

sql与外键表联接

来自分类Dev

SQL外键外键

来自分类Dev

与多个外键联接

来自分类Dev

3个表上的外键联接

来自分类Dev

使用外键是否可以加速表联接

来自分类Dev

使用外键联接表

来自分类Dev

通过未创建的外键对联接表进行排序

来自分类Dev

用该表的最大主键联接表的外键

来自分类Dev

使用联接,从多个SQL表中选择没有外键的值

来自分类Dev

外键联接表

来自分类Dev

使用外键联接表

来自分类Dev

如何在SQL中的一个表上用两个相同的外键命名联接表中的两列?

来自分类Dev

SQL左联接外键两个表

来自分类Dev

SQL。回复:内部联接和外键

来自分类Dev

用多个外键联接表

来自分类Dev

用相同的外键联接多个表

来自分类Dev

使用联接表删除重复记录,并在相关表上修复外键

来自分类Dev

与多个外键联接

来自分类Dev

跨多个表的SQL外键

来自分类Dev

数据库中的外键并创建联接表

来自分类Dev

参照外键联接两个表

来自分类Dev

SQL外部联接具有引用同一张表的多个外键

来自分类Dev

计数查询两次联接的表,这些表两次被不同的外键引用

来自分类Dev

带有外键的两个表的休眠联接

来自分类Dev

联接上的外键类型

来自分类Dev

选择数组值,如外键方式联接多个表

来自分类Dev

使用联接,从多个SQL表中选择没有外键的值

来自分类Dev

表中的重复键用于sql中的外键

来自分类Dev

具有多个外键的内部联接表