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/

10-13 02:05