gpt4 book ai didi

MySQL 从与另一个表连接的表中选择所有左条目

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

我有以下 MySQL 语句:

SELECT      norm.NormID, norm.NormName
FROM (assignment
INNER JOIN norm
ON assignment.NID = norm.NormID )
INNER JOIN wire
ON assignment.LID = wire.WireID
WHERE wire.WireID= 109
ORDER BY norm.NormName;

现在我得到的是表分配中的条目以及该 WireID 的 NormID 和 NormName。我想要获取的是表规范中的条目,这些条目没有为此 WireID 设置。

例如:WireID 具有范数分配 A、B、D、G。

表范数包含条目 A、B、C、D、E、F、G、H。

我想从 MySQL-Statment 中获取条目 C、E、F、H。

如何选择该 WireID 的剩余规范条目?

通过上述语句我会得到:

<小时/>
-----------------------
| NormID | NormName |
-----------------------
| 1 | A |
| 2 | B |
| 4 | D |
| 7 | G |
-----------------------

我想要这个表:

-----------------------
| NormID | NormName |
-----------------------
| 3 | C |
| 5 | E |
| 6 | F |
| 8 | H |
-----------------------

最佳答案

我想(如果我理解你的问题)你可以尝试这个:

SELECT      norm.NormID, norm.NormName
FROM assignment
INNER JOIN norm ON assignment.NID = norm.NormID
LEFT JOIN wire ON assignment.LID = wire.WireID
WHERE assignment.LID= 109
AND wire.wireID IS NULL
ORDER BY norm.NormName;

发表评论后进行编辑。我认为你可以使用:

SELECT      A.NormID, A.NormName
FROM norm A
LEFT JOIN (SELECT NID FROM assignment WHERE LID = 109) B ON B.NID = A.NormID
WHERE B.NID IS NULL
ORDER BY A.NormName;

或者

SELECT      A.NormID, A.NormName
FROM norm A
WHERE NOT EXISTS (SELECT 1 FROM assignment WHERE LID = 109 AND ASSIGNMENT.NID = A.NormID)
ORDER BY A.NormName;

关于MySQL 从与另一个表连接的表中选择所有左条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43248713/

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