gpt4 book ai didi

mysql - SQL:在一个复杂查询中组合两个选择

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

我有一个非常复杂的查询:

$query = "SELECT * FROM element_skanning yt1
JOIN (SELECT objekt_nr, element_nr, vart
FROM element_skanning
GROUP BY objekt_nr, element_nr, vart
HAVING count(*) > 1)
yt2 ON (yt2.objekt_nr=yt1.objekt_nr AND yt2.element_nr=yt1.element_nr AND yt2.vart=yt1.vart)
ORDER BY 2";

这是我的数据库的样子:

id     objekt_nr     element_nr     vart
-----------------------------------------
1 1 1 Blå
2 1 1 Blå
3 1 1 Rosa
4 1 1 Kont
5 2 1 Rosa
6 2 2 Blå

我现有的查询会给我结果:1&2 因为我使用了三个输入。

现在我想寻找第三个骗子。编号:3
我如何获得 id: 1,2,3 而不是 4、5 和 6 的结果?
检查应该是是否有一行具有相同的 obj_nr 和 el_nr 但之前是“blå”或“Rosa”“vart”。
因此,由于 id: 1 和 2,Id 3 将是一个骗局。
Id: 2,因为 1 和 3 会被骗。
Id: 1,因为 2 & 3 会被骗。

我确实重写了几次,我想这就是我不能写查询的原因。 我希望你能理解我在这里想要什么?!
以及如何去做?

最佳答案

如果我理解正确的话:

SELECT *
FROM element_skanning yt1 JOIN
(SELECT objekt_nr, element_nr
FROM element_skanning
WHERE vart IN ('blå', 'Rosa')
GROUP BY objekt_nr, element_nr
HAVING count(*) > 1
) yt2
ON yt2.objekt_nr = yt1.objekt_nr AND
yt2.element_nr = yt1.element_nr
WHERE vart IN ('blå', 'Rosa')
ORDER BY 2;

关于mysql - SQL:在一个复杂查询中组合两个选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32866022/

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