我有两张这样的桌子:
表共享:
带列
id
user
blocked
texte
time_add
表孔
带列
id
qst
respons
user
time_add
我要两张桌子的东西。但当我使用左关节时,它什么也不给,因为其中一张桌子是空的,我怎么能解决它呢??我要把所有桌子的东西都拿出来,哪怕其中一张是空的!!!
最佳答案
假设两个表之间的关系基于用户列
如果你不知道表格的哪一个是空的,但无论如何都要重审结果
你可以在反向连接之间使用联合
select sharet.*, sondage.*
from sharet
left join sondage on sondage.user = sharet.user
UNION
select sharet.*, sondage.*
from sondage
left join sharet on sondage.user = sharet.user
在两个表的内部联接和两个表之间不匹配行的左联接之间使用并集
select sharet.*, sondage.*
from sharet
inner join sondage on sondage.user = sharet.user
UNION
select sharet.*, sondage.*
from sharet
left join sondage on sondage.user = sharet.user and sharet.user is null
UNION
select sharet.*, sondage.*
from sondage
left join sharet on sondage.user = sharet.user and sondage.user is null