一尘不染

当一个表在MySQL中为空时选择多个表

mysql

我正在努力

SELECT * FROM a, b

但是,如果其中一个表为空,它将不返回任何内容。我如何使它返回“ a”,即使另一个为空?


阅读 310

收藏
2020-05-17

共1个答案

一尘不染

from子句中使用两个表在功能上等效于cross join

select  *
from    A
cross join
        B

这将为B中的每一行返回A行。当B为空时,结果也为空。您可以使用来解决此问题left join。使用left join,即使其中一个表为空,也可以返回行。例如:

select  * 
from    A
left join  
        B
on      1=1

由于该条件1=1始终为真,因此这就像一个条件,cross join除了它也适用于空表。

2020-05-17