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,仅显示sg.after_aidry = true或status_airdry = True时还不显示在killer_dry中
但是,当它已经在killer_dry中时,id_output_breakdown仍然在列表中,为什么?
最佳答案
您可以尝试一下:
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
顺便说一句:避免在选择列表中使用“ *”,仅选择需要的列,即使我需要所有列,也要按名称指定它们。因此,当您添加/删除表中的列时,可以避免出现意外情况!
关于mysql - sql查询存在条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30861936/