gpt4 book ai didi

sql - 为什么这个查询什么都不返回?

转载 作者:可可西里 更新时间:2023-11-01 07:46:48 24 4
gpt4 key购买 nike

此查询工作正常,但我无法弄清楚如果用户在表“user_categories”中没有任何类别,为什么它不返回任何内容?这是表结构:

用户:用户id、用户名、用户所在城市

类别:类别id、类别名称

user_categories:用户id,类别id

SELECT users.*, GROUP_CONCAT(categories.category_name) AS categories
FROM users
INNER JOIN user_categories ON users.user_id = user_categories.user_id
INNER JOIN categories ON user_categories.category_id = categories.category_id
WHERE users.user_city = 'brooklyn'
GROUP BY users.user_id
LIMIT 10

如果 user_categories 中的 user_id 不存在任何行,我只需要将新列“categories”设为空...

谢谢!

最佳答案

您使用了错误的联接类型 - 只有在两个表中都找到匹配项时,内部联接才会成功。相反,您想尝试外部联接。尝试这样的事情:

SELECT users.*, GROUP_CONCAT(categories.category_name) AS categories
FROM users
LEFT OUTER JOIN user_categories ON users.user_id = user_categories.user_id
LEFT OUTER JOIN categories ON user_categories.category_id = categories.category_id
WHERE users.user_city = 'brooklyn'
GROUP BY users.user_id
LIMIT 10

Wikipedia SQL JOIN这篇文章是对可用连接类型的相当不错的总结。

关于sql - 为什么这个查询什么都不返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2357715/

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