当一个表为空或不为空时,选择两个表


Select two tables when one table is empty or not empty

我一直在弄清楚我的查询出了什么问题。 我选择表"Acara"和表"eventorg",如果表"acara"未找到或为空,表"事件组织"不想出现,但是,如果表"acara"不为空或找不到,表"事件组织"和表"acara"将显示

这是我的查询

SELECT 
  eventorg.nama as NamaEO,
  eventorg.deskripsi as DeskEO,
  eventorg.logo as LogoEO,
  eventorg.email as EmailEO,
  eventorg.telp as TelpEO,
  acara.nama as NamaEvent,    
  acara.id_acara,
  acara.tanggal,
  acara.deskripsi,
  acara.lokasi
FROM eventorg 
LEFT JOIN acara 
ON acara.id_eo=eventorg.id_eo AND eventorg.id_eo='$ideventO';
表 'eventorg' 中的 'id_eo' 是

主键,表 'acara' 中的 id_eo' 是外键

如果要选择eventorg的每一行,而不管acara中是否存在相应的记录,则需要右联接,而不是左联接(或反转 FROM 和左联接子句中的表)。

正如马修在他的评论中提到的,杰夫·阿特伍德的维恩图是可视化它的好方法:http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/