如何在另一个表中选择没有匹配条目的行,即使其中一个表为空

时间:2017-12-23 15:38:36

标签: php mysql

我有两张这样的桌子:

sharet:

id
user
blocked
texte
time_add

sondage

id
qst
respons
user
time_add

我想获取两个表的内容。但是,当我使用左关节时,它什么都没有,因为其中一个表是空的,我怎么能解决它?我想得到所有表的内容,即使其中一个是空的!!!

1 个答案:

答案 0 :(得分:4)

假设两个表之间的关系基于用户列 然后,如果你不知道桌子是空的,但无论如何都要反过来结果 你可以在倒置连接之间使用联合

  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