mysql - 如何返回表 A 中的所有列,其中包含数百个 ID 列的表 B 中存在一个 ID 列

标签 mysql sql

我了解如何检查表 A 中的列 ID 是否存在于表 B 的第 X 列中。

但是有没有办法返回表 A 中所有与表 B 中的单个标识符不匹配的行?

实际上,表 B 包含数百列。

表A:

+------------+------+--------+----------------+
| Title Name |  ID  | Region | Numeric Column |
+------------+------+--------+----------------+
| Sam        | B021 | NA     |           5.99 |
| Brook      | B026 | EU     |           5.99 |
| Harry      | B032 | KOR    |          10.99 |
+------------+------+--------+----------------+

表 B:

+------+-------+-------+
| SAM  | BROOK | HARRY |
+------+-------+-------+
| B021 | B024  | B030  |
| 1    | B025  | B031  |
| 2    | 4     |       |
| 3    |       |       |
+------+-------+-------+

所以在这种情况下,我希望我的查询选择表 A 中的第 2 行和第 3 行。

最佳答案

使用 NOT EXISTS 可能有效。

SELECT *
FROM TableA a
WHERE NOT EXISTS 
(
    SELECT 1
    FROM TableB b
    WHERE a.ID IN (b.SAM, b.BROOK, b.HARRY)
);

关于mysql - 如何返回表 A 中的所有列,其中包含数百个 ID 列的表 B 中存在一个 ID 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58809511/

相关文章:

mysql - 在 MySQL 中,当没有唯一字段(主键)时,如何编写查询以在插入时跳过重复行?

mysql - 可以通过自动增量 pk 获取插入的值吗?

php - 似乎无法连接到mysql、localhost?

sql - 在多列和其他列上选择 DISTINCT

MySQL触发器语法

php - 更新生产服务器上的数据库结构的最佳方法?

php - 如何在sql或codeigniter中与多个表交互?

mysql - SQL 获取首先创建的金额最高的行

php - 如何只允许一个用户在 php 中编辑表单?

asp.net - 使用 Informix 进行 SqlBulkCopy