1
假设我有桌人,他拥有许多书籍,其中涵盖了许多主题。 一本书可能还没有分配给他们的任何主题。如何最好地做一个SQL左连接null检查所有都必须为空?
很容易查询拥有没有带有左连接和空检查的主题的某些书籍的人员。例如:
select * from persons p
inner join person_book pb on pb.person_id = p.id
left join book_subject bs on bs.book_id = person_book.book_id
where book_subject.book_id is null;
什么是最好的方式来查询谁只拥有没有确定的主题书籍的人?
我知道我可以找到有书的人,以及至少有一本书的人,然后找到差异。但是有直接的方法吗?
(这将在MySQL中,如果它有所作为)。
'P *'不会与集料工作。 – Allan
@Allan:它会在MySQL中。作为一个例子,请参阅:http://sqlfiddle.com/#!2/f95bc/1 –
我站在更正。 – Allan