是否可以通过单个SQL查询来解决这个问题?有4个表:这可以通过单个SQL查询来解决吗?
- 书(ID,标题,东西)
- 页(ID,book_id,东西)
- syntax_error(ID,PAGE_ID,固定的东西)(固定 - 布尔)
- lexical_error(ID,PAGE_ID,固定,东西)
的book
表具有与表page
一对多的关系。
单个page
可以含有syntax_error
或lexical_error
(在这个例子中,不可能有两个错误对于一页,和每个页面只有一个错误),因此page
具有syntax_error
或lexical_error
一对一的关系。
我怎样才能找到没有错误的书? (我怎样才能得到所有book.id
值没有任何错误或任何非固定错误?)
通过使用一个SQL查询。
我可能会使用这个,如果它WASN '吨MySQL,只是因为我读了mysql与'not exists()'相比,其他选择很难。尽管如此,+1仍是一个很好的答案。 [不存在与不存在与左连接/是NULL:MySQL](https://explainextended.com/2009/09/18/not-in-vs-not-exists-vs-left-join-is- null-mysql /) – SqlZim
@SqlZim。 。 。我认为'union all'排除了索引的使用,所以这可能比那个版本快得多。 –