gpt4 book ai didi

mysql - 如何选择不在另一个表中的记录?

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

我需要比较两个表并获取未完成或不存在的 pn。我似乎无法在网上任何地方找到我所需要的答案。这是我需要的表格和示例输出。非常感谢任何可以帮助我的人。

表1:

+------------+----------+------------+----+---------------------+
| cert | job | pcmk | pn | stat |
+------------+----------+------------+----+---------------------+
| MF21600001 | 6216 | A148 | 1 | 2015-08-14 13:20:29 |
| MF21600001 | 6216 | A148 | 2 | |
+------------+----------+------------+----+---------------------+

表2:

+-----------+----------+----+
| job | pcmk | pn |
+-----------+----------+----+
| 6216 | A148 | 1 |
| 6216 | A148 | 2 |
| 6216 | A148 | 3 |
+-----------+----------+----+

Table2 中不在 Table1 中或状态 = 空白/NULL 的行的示例输出:

+------------+------+------+----+
| cert | job | pcmk | pn |
+------------+------+------+----+
| MF21600001 | 6216 | A148 | 2 |
| MF21600001 | 6216 | A148 | 3 |
+------------+------+------+----+

好的,我接受了第一个想法并进行了一些尝试。

SELECT Table1.cert, pninput.job, pninput.pcmk, pninput.pn, pn.stat
FROM Table1, Table2
WHERE NOT EXISTS (SELECT *
FROM Table1
WHERE Table1.pcmk = Table2.pcmk AND Table1.job = Table2.job AND Table1.stat = '')

然而,现在每个证书都与每个 pcmk 和作业配对,即使每个证书只能有 1 个作业和 1 个 pcmk,并且运行时间也超过 35 秒

最佳答案

如果我重新表述您的条件,您希望 table2 中的行在 table 中没有具有非 null 的对应行> 状态。这听起来像是一个存在条件:

SELECT *
FROM table2
WHERE NOT EXISTS (SELECT *
FROM table1
WHERE table1.pn = table2.pn AND stat IS NOT NULL)

关于mysql - 如何选择不在另一个表中的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32339496/

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