gpt4 book ai didi

MySQL 多表 SELECT 查询

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

假设你有 3 张 table ..

articles(id,id_cat)
categories(id)
messages(id,id_cat,id_article)

..其中 articlescategories 相关,messages 可以与 articles 相关>类别(用户可以在类别或文章中发布消息)

在假设的当前类别 id=55 中,我可以执行哪个查询来列出在当前类别和属于当前类别的文章中发布的所有消息?

-- 联合解决方案 --

Poodlehat 建议使用 UNION,对于这个特定问题将是:

SELECT * FROM (
(SELECT m.id FROM messages AS m INNER JOIN categories AS c ON c.id=m.id_cat
WHERE m.id_cat=55)
UNION
(SELECT m.id FROM messages AS m INNER JOIN articles AS a ON a.id=m.id_article
WHERE a.id_cat=55)
) AS foo

----

现在,没有 UNION 有什么方法可以做到这一点吗?

最佳答案

SELECT m.id    
FROM messages m
WHERE m.id_cat=55
union
SELECT m.id
FROM messages m, articles a
WHERE a.id_cat=55
AND m.id_article=a.id

在没有工会的情况下这样做,嗯,现在你在挑战我......看看这是否可行

SELECT m.id 
FROM messages m LEFT OUTER JOIN articles a ON m.id_article=a.id
WHERE m.id_cat=55 OR a.id_cat=55

关于MySQL 多表 SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11510241/

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