SELECT sg.*
FROM stokgudang sg
WHERE NOT EXISTS (SELECT kd.*
FROM killer_dry kd
WHERE kd.id_output_breakdown = sg.id_output_breakdown)
AND sg.after_airdry= 'True' OR sg.status_airdry = 'True'
我想要的是不要显示已经在killer_dry中的id_output_breakdown,只显示当它还没有在killer_dry中时sg.after_aidry = true或status_airdry = True
但是当它已经在killer_dry中时,id_output_breakdown仍在列表中,为什么?
答案 0 :(得分:0)
你可以尝试一下:
SELECT sg.*
FROM stokgudang sg
LEFT JOIN killer_dry kd ON
kd.id_output_breakdown = sg.id_output_breakdown
AND (sg.after_airdry= 'True' OR sg.status_airdry = 'True')
WHERE kd.id_output_breakdown IS NULL
顺便说一句:避免使用" *"在您的选择列表中,只选择您需要的列,即使我需要所有列,我按名称指定它们。因此,当您在表格中添加/删除列时,可以避免不愉快!
答案 1 :(得分:0)
你也可以这样做,虽然我怀疑有比相关子查询更好的解决方案:
SELECT sg.*
FROM stokgudang sg
WHERE NOT EXISTS (SELECT kd.*
FROM killer_dry kd
WHERE kd.id_output_breakdown = sg.id_output_breakdown)
AND 'True' IN(sg.after_airdry,sg.status_airdry)