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

时间:2016-02-20 09:10:08

标签: php mysql sql

我一直在努力弄清楚我的查询有什么问题。我选择桌子' acara'和表' eventorg', 如果表' acara'没找到或是空的, table' eventorg'不想出现, 但是如果桌子上有一个' acara'不空或找不到, table' eventorg'和表' 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';

' id_eo'在表格' eventorg'是主键,' id_eo'在桌子上' acara'是外键

1 个答案:

答案 0 :(得分:0)

如果要选择eventorg的每一行,无论acara中是否存在相应的记录,那么您需要一个正确的JOIN,而不是一个LEFT JOIN(或者反转FROM中的表格) LEFT JOIN条款)。

正如Matthew在评论中提到的那样,Jeff Atwood的维恩图是可视化的好方法:http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/