首页 > 解决方案 > MySQL - 不显示来自 ID 使用的任何行

问题描述

我只需要显示不使用特定 ID 的值。我有两张桌子

表格1

id_xx
1
2
3
4
5

表 2

id | id_xx
3  |  3
4  |  3
4  |  1

例如,我需要这个结果。我说我需要哪些来自 ID 的结果

我需要这个结果,其中 id=3

id_xx
1
2
4
5

或其中 id=4

id_xx
2
4
5

或其中 id=1

1
2
3
4
5

标签: mysqlmariadb

解决方案


您可以在 的子句中LEFT JOIN table1使用table2并应用过滤器,然后过滤不匹配的记录:ONJOIN

SELECT t1.id_xx
FROM table1 t1
LEFT JOIN table2 t2 ON t2.id_xx = t1.id_xx AND t2.id = ?
WHERE t2.id IS NULL

您可以将问号替换为id您需要检查的。

DB Fiddle 上的演示

给定t2.id = 3

| id_xx |
| ----- |
| 1     |
| 2     |
| 4     |
| 5     |

给定t2.id = 4

| id_xx |
| ----- |
| 2     |
| 4     |
| 5     |

推荐阅读