我一直在弄清楚我的查询出了什么问题。 我选择表"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/