gpt4 book ai didi

mysql - 对于将 5 个表连接在一起有点困惑

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

SELECT p1.id, 
p2.id,
p3.id,
p4.id,
p5.id
FROM social_media_mareketing_blog p1
INNER JOIN social_engine_mareketing_blog p2 ON p1.id = p2.id
INNER JOIN branding p3 ON p2.id = p3.id
INNER JOIN strategy p4 ON p3.id = p4.id
INNER JOIN mobile_marketing p5 ON p4.id = p5.id
WHERE p1.id = '1' LIMIT 0 , 30

这个查询可以连接 MySQL 中的 5 个表吗?

最佳答案

该查询在语法上是正确的。唯一:不同的表通常不会有相同的 ID。在查询中,您找到 id 为 1 的记录,然后在下一个表中查找 id 为 1 的记录,依此类推。仅显示结果中的个数(以及两个等)。我敢说这没有多大意义。

而且,你总是会首先想到你想展示什么。您真的对所有五张 table 的组合感兴趣吗?或者您是否希望显示存在移动营销的行(例如,您最好使用 EXISTS 子句而不是联接)。另外:其他表中总会有匹配的记录吗?否则,您将必须对表进行外连接,而不是对所有表使用内连接。

最后两点备注:您通常不会在不指定顺序的情况下限制您的结果,但我想这只是出于测试目的,对吧?为了便于阅读,您可以使用有意义的别名,例如 mb 表示媒体博客,eb 表示引擎 block (或任何您喜欢的名称;也许 smmb 表示 Social_media_mareketing_blog),而不是 a、b、c、d 或 p1、p2 、p3、p4。

以下是典型查询的示例:

SELECT 
mb.blog_id,
mb.id,
mb.content,
eb.id,
eb.content,
...
FROM social_media_mareketing_blog mb
LEFT JOIN social_engine_mareketing_blog eb ON eb.blog_id = mb.blog_id
...
WHERE mb.id = '1'
AND EXISTS
(
select *
from mobile_marketing mm
where mm.marketing_id = mb.marketing_id
);

关于mysql - 对于将 5 个表连接在一起有点困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26967868/

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