Mysql sql-查找所有不需要红色部件的作业
我有一个表“作业”,其中包含最终产品,还有一个表“零件”,其中包含最终产品所用的各个零件。 第三个表“supp_part_job”将作业和零件链接在一起,因为它们是n:n关系。 我想找到所有不包含红色零件的最终产品 相关表格: 这是如何完成的,它可以作为子查询和联接来完成吗 我试过: select distinct jobno from supp_part_job where partno in (select partno from part where color != 'red');Mysql sql-查找所有不需要红色部件的作业,mysql,join,subquery,Mysql,Join,Subquery,我有一个表“作业”,其中包含最终产品,还有一个表“零件”,其中包含最终产品所用的各个零件。 第三个表“supp_part_job”将作业和零件链接在一起,因为它们是n:n关系。 我想找到所有不包含红色零件的最终产品 相关表格: 这是如何完成的,它可以作为子查询和联接来完成吗 我试过: select distinct jobno from supp_part_job where partno in (select partno from part where color != 'red'
它不起作用,因为如果我理解正确的话,它会返回所有包含非红色部分的作业。下面的子查询会找到所有不需要的作业。外部查询将找到所需的查询
select distinct jobno
from job
where jobno not in (
select jobno
from supp_part_job pj
join part p on p.partno = pj.partno
where color = 'red'
)
对我来说,stackoverflow不是关于做我的家庭作业,因为在你的问题中没有关键字,当其他人有问题时,可以找到这个问题和答案,并找到这个问题作为他的问题的解决方案。我投反对票。我不认为这是正确的,事实上我认为不在颜色中=‘红色’等同于在颜色中!='红色。相应地进行了修复。非常感谢您提供了这个很好的解决方案。
select distinct jobno
from job
where jobno not in (
select jobno
from supp_part_job pj
join part p on p.partno = pj.partno
where color = 'red'
)