gpt4 book ai didi

mysql - 使用 HAVING 连接三个表

转载 作者:行者123 更新时间:2023-11-29 05:45:41 26 4
gpt4 key购买 nike

我有表:

id name type

其中“类型”是 1 或 2

我需要将这张 table 与另外两张 table 合并。 “type = 1”的行应该与第一个表连接,=2 与第二个表连接。

例如,主表包含人们所做的一些事件。加入的第一表是关于男性的信息,其次是关于女性的信息。类型是性别。
我需要记录最近 10 个事件以及有关这些人的所有信息。

有点像

SELECT *
FROM tbl
INNER JOIN tbl_1 ON tbl.name = tbl_1.name HAVING tbl.type = 1
INNER JOIN tbl_2 ON tbl.name = tbl_2.name HAVING tbl.type = 2

但它不起作用。
如何实现?

最佳答案

首先,HAVING 子句用于分组,而不是连接。只需在 ON 子句中包含条件

ON tbl.name = tbl_1.name AND tbl.type = 1

其次,如果条件不满足,该行将不会出现在内部连接的结果中。由于一个字段 (tbl.type) 不能有两个不同的值,因此不会产生任何行。请尝试使用左外部联接。

SELECT *
FROM tbl
LEFT JOIN tbl_1 ON tbl.name = tbl_1.name AND tbl.type = 1
LEFT JOIN tbl_2 ON tbl.name = tbl_2.name AND tbl.type = 2

但是,这带来了一个问题:为什么不能允许结果中的所有字段,而忽略那些您不关心的字段?

关于mysql - 使用 HAVING 连接三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2511667/

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