MySQL如何加入空表?
Posted
技术标签:
【中文标题】MySQL如何加入空表?【英文标题】:MySQL how join to empty table? 【发布时间】:2018-09-06 18:11:59 【问题描述】:我有 SQL 查询:
SELECT a.id, b.id
FROM a
LEFT JOIN b ON b.id = 50
WHERE a.something = 'something'
AND a table
真的是空的,应该是这样。但是表 b 不是空的,并且在b.id = 50
上有有效的结果。此查询打印空集。
因此我需要:
| a.id | b.id |
|------ |------ |
| null | 50 |
【问题讨论】:
你应该使用右连接,阅读***.com/questions/5706437/… 如果表 'a' 为空,为什么要使用 a.something='something'?它将提供空结果。除了使用右连接或使用 b 左连接 a 这是对JOIN
的滥用。 JOINs
(是否LEFT
)应该说明(在ON
中)这两个表是如何相关的。
【参考方案1】:
反转left
加入或执行right
加入:
SELECT a.id, b.id
FROM b
LEFT JOIN a ON a.something = 'something'
WHERE b.id = 50
或
SELECT a.id, b.id
FROM a
RIGHT JOIN b ON b.id = 50
WHERE a.something = 'something'
【讨论】:
您的 RIGHT JOIN 将转换为 INNER JOIN。 Thx,此解决方案有效,我将非空表交换为from
,并将空表交换为左连接。以上是关于MySQL如何加入空表?的主要内容,如果未能解决你的问题,请参考以下文章
在 MySQL Workbench 中,使用“表数据导入向导”导入 CSV 会创建空表
MySQL drop空表时处于Waiting for table metadata lock状态,解决办法 (出自网络)