MySQL - 不显示 ID 使用的任何行

标签 mysql mariadb

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

表 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

最佳答案

您可以LEFT JOIN table1table2 并在ON 子句中应用过滤器>JOIN,然后过滤不匹配的记录:

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

Demo on DB Fiddle :

给定 t2.id = 3:

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

给定 t2.id = 4:

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

关于MySQL - 不显示 ID 使用的任何行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58197062/

相关文章:

mysql - 我可以使用 DEFAULT 在 MySQL 的 UPDATE 命令中设置时间戳吗?

python - 实例化 MySQL 数据库类

php - 使用 Foreach 插入

mysql - 处理事务 mariadb 的中止

mysql - 如果 id 未知则添加记录,否则更新记录

MySQL MariaDB 服务器树莓派远程访问

mysql - 错误接近 LIMIT 但仅当我使用冒号时

mysql - 如何列出三向连接表查询中的第一个值?

php - 如何在保持相同数组索引的同时进行排序?

mysql:最好的说法是 "the string up to the first instance of any of the following keywords"?