这是一个如此简单的问题,但由于某种原因,我今天无法理解它。
我有两个实体:-titleproduct分别命名为tbl_titletbl_product。每个title可以有许多products
产品表有一个名为unwanted的字段,可以是null01
我希望根据alltitles(all)的product设置为unwanted的位置选择all1s。换言之,我希望根据所有满足某个条件的子对象来选择父对象。所以如果一个title有一个productunwanted但另一个不是,我不希望这个title进入结果集。
当我试着这么做的时候,我脑子里想的最多的是:

SELECT * FROM `tbl_title`
    left join tbl_product on tbl_product.title_id = tbl_title.id
    where tbl_product.unwanted = 1
    group by tbl_title.id

这显然不起作用。
那么如何编写这样的查询代码呢?

最佳答案

select * from tbl_title
where id not in (select title_id from tbl_product where unwanted = 0)

在英语中,此查询将删除所有具有所需产品的标题。
从样式的角度来看,最好调用您的列wanted,因为unwanted = 0wanted = 1的双负数。总是比较容易让你的头在积极的方面。

10-08 12:34