gpt4 book ai didi

mysql - 如何选择只有特定标签而不是另一个标签的用户

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

我有以下数据库模式 sql schema

我需要获取标签名称为“A”且标签名称为“B”的用户的 fname、lname。例如,用户 X 同时具有标签 A 和标签 B,他不应包括在内在结果中,而如果另一个用户 Y 只有标签“A”,则他应该包含在结果中。这可能没有子查询吗?我必须改变模式吗?

最佳答案

  • 您可以根据用户 ID 和名称GROUP BY
  • 使用 HAVING 子句和 SUM() 聚合来过滤案例。
  • 如果用户没有标签“B”,SUM(name = 'B') 将为零,post joins。

尝试以下操作:

SELECT 
u.user_id,
u.fname,
u.lname
FROM
user AS u
JOIN tags AS t ON t.user_id = u.user_id
JOIN tags_def AS td ON td.tag_id = t.tag_id
GROUP BY
u.user_id,
u.fname,
u.lname
HAVING
SUM(td.name = 'A') AND
SUM(td.name = 'B') = 0

关于mysql - 如何选择只有特定标签而不是另一个标签的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52841486/

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