我有两张这样的桌子:
表共享:
带列

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

09-04 21:15