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

MySQL-不显示ID使用中的任何行,mysql,mariadb,Mysql,Mariadb,我只需要显示不使用特定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 您可以将表1与表2保持连接,并在连接的ON子句中应用筛选器,然后对不匹配的记录进行筛选: SELECT t1.id_xx FROM tabl

我只需要显示不使用特定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
您可以将表1与表2保持连接,并在连接的ON子句中应用筛选器,然后对不匹配的记录进行筛选:

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替换问号

:

给定t2.id=3:

给定t2.id=4:


另一种方法是使用:

选择t1.id\u xx 从表1中取t1 如果不存在,请选择1 从表2中取t2 其中t2.id=?-您的输入id在这里 t2.id_xx=t1.id_xx 如果您有大型表,并且担心这些查询的性能,则可以定义以下索引:

对于相关子查询,在表2中定义复合索引id,id_xx。 更改表2,添加INDEXid,id_xx;
假设id_xx已经是表1中的主键。因此,您不需要在那里定义任何索引。如果没有,那么你可以在上面定义一个索引。

这似乎也产生了预期的结果,为什么它被否决了?@GMB谢谢。。不要介意。。如果有人得到了施虐狂的快感,让他/她:-
| id_xx |
| ----- |
| 1     |
| 2     |
| 4     |
| 5     |
| id_xx |
| ----- |
| 2     |
| 4     |
| 5     |