gpt4 book ai didi

mysql - 在 join mysql 中合并三个表

转载 作者:行者123 更新时间:2023-11-30 01:12:03 25 4
gpt4 key购买 nike

我正在尝试显示图像、用户名以及重要的与查询相关的回复。我使用了类似的代码,如下所示,但对于回复列,即使信息已满,我仍然得到空或空。它有 3 个表,其中一个用于标题、图像和回复。 header 包括用户的用户名和其他信息、图像以及人们做出的回复。

reply.mid 假设与 images.mid 匹配,以便回复可以位于图像旁边。

  SELECT images.id, images.who, header.username, images.message, images.name,     reply.reply
FROM header, images
LEFT JOIN reply ON reply.reply = reply.mid
OR reply.mid = images.mid
WHERE images.name IS NOT NULL = header.id
AND images.who IS NOT NULL
AND images.message IS NOT NULL
GROUP BY images.mid

下面的故事结构。抱歉

  TABLE Header
username
id
who
where

Table images
message
name
mid - id that auto increments when image is loaded
id
content

Table reply
mid id that is taken from images mid to relate image to reply.
reply
id ----this is only for an id for a reply that is auto increment

更新。上面的代码有效。

最佳答案

从其他人的评论中,您还可以使用 GROUP BY 进行聚合(例如 MIN()、MAX()、AVG() 等),例如每个销售代表、每月、每人的总销售额年等。通过按图像 ID 分组,您可能会丢失一个人可能有多个回复的实例。

无论如何,对您的查询进行一些清理。目前尚不清楚 header 表如何链接到回复,并且您有一个 LEFT-JOIN 来回复,但随后查找图像的 IS NOT NULL。这表明 INNER 连接与 LEFT 连接。我正在转移查询,因为您正在寻找回复,而那些过来寻找图像的人,就这样吧。

SELECT  
H.username,
I.id,
I.who,
I.message,
I.name,
R.reply
FROM
replies R
join header H
on R.SomeKeyToLinkToHeader = H.SomeHeaderKeyLinkingToReplies
LEFT join images I
on R.ID = I.MID
OR R.MID = I.MID
WHERE
I.MID IS NOT NULL

IS NOT NULL 的测试实际上只需要在任何一个键列上...如果它为空,则整个记录都会丢失并且也将为空。 (即:它无法在回复“ID”或“MID”列中找到匹配项。

如果您提供表结构以更好地显示表之间的关系,则上面的查询显然会稍有改变。您可能打算使用 ORDER BY 而不是 GROUP BY 子句。

关于mysql - 在 join mysql 中合并三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19388870/

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