如何只选择MySQL中另一个表中没有相应外键的行?

时间:2010-06-21 01:22:24

标签: codeigniter mysql join

我有3张桌子:

  • 列表
  • 照片
  • 日历

“照片”和“日历”都有一个“listing_id”列,每个“列表”都有一个“照片”。但我只想选择匹配“listing_id”的“calendar”表中没有条目的行。

我不确定我是否正确说出来,但是非常感谢任何帮助。如果有人能告诉我CodeIgniter语法,那就更好了。

2 个答案:

答案 0 :(得分:2)

这将生成不应返回的calendar.free_date值列表,因为列表中不存在关联的listing_id值。

select free_date from calendar c 
 where not exists (select * from listing 
                    where listing_id = c.listing_id);

答案 1 :(得分:0)

应该作为SQL查询。不确定CI语法。遗憾!

SELECT * FROM listing WHERE listing_id NOT IN(SELECT listing_id FROM calendar)