我有一个有趣的 SQL 查询。
我有两张 table ;称为“DATA”和“DICT”。
DATA 表包含列标题。
DICT 表包含(作为行中的数据)DATA 表的列标题。
IOW:
数据具有列标题:
- 代码
- 描述
- 博士
- CR
DICT 有行
- 代码
- 描述
使用 MySQL SELECT 语句我可以:
SELECT column_name from information_schema.COLUMNS WHERE (table_name = "DATA");
返回列名称。
现在我希望实现的是一个 SELECT 语句(带有必要的 JOIN)来返回 DICT 表中排除的行(作为行)。
因此,根据示例:
我需要一个适当的 SELECT 语句来返回以下事实: DR 和 CR 不是 DICT 表中的行。
相信我,我已经尝试了很多逻辑组合,看来我可能由于“WHERE (table_name = "DATA")”部分而遇到问题。
谢谢
最佳答案
正如 Sloan Thrasher 所说,举个例子会很有帮助。也就是说,这就是您所追求的吗?
SELECT DISTINCT is1.column_name
FROM information_schema.COLUMNS is1
LEFT JOIN DICT ON is1.table_schema = 'YourSchema' AND is1.table_name = "DATA" AND is1.column_name = DICT.column_name
WHERE DICT.column_name IS NULL
;
关于MySQL SELECT 语句与 JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44501397/