gpt4 book ai didi

mysql - 如何返回连接所有存在 SQL 的行

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

当连接表在我的 on 上有所有匹配的行时,我如何返回一行(最好是在 ANSI SQL 中)?

错误行为示例:

SELECT table1.*
, whatever
FROM table1
INNER JOIN table2 ON table2.whateverrelation = table1.whateverrelation
AND table2.matching IN(1, 2);

将返回每个 table1 行与 table2 上的匹配关系是 1 或 2(即,将返回一个 table1 行与一个或更多匹配字段。

我怎样才能得到只返回 table1 行的东西,这些行与 table2 行相关,并且 matching 是 1 和 2(所以AND 而不是 OR,因此必须至少有一个 table2 行具有 matching = 1 并且至少有一个具有 matching = 2,所以它不会显示没有两个匹配项的任何 table1 行)?

我不想对同一个表进行两次连接,我知道我可以进行两次左连接,一次匹配 1,一次匹配 2,但我事先不知道我有多少匹配会需要的。

干杯

最佳答案

您可以使用:

SELECT table1.col1, ....
FROM table1
INNER JOIN table2
ON table2.whateverrelation = table1.whateverrelation
GROUP BY table1.col1, ....
HAVING SUM(table2.matching = 1) > 0
AND SUM(table2.matching = 2) > 0;

关于mysql - 如何返回连接所有存在 SQL 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37330364/

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