比较 mysql select 和 table 并且只使用没有匹配的结果

Compare mysql select to table and only use results with no match

我创建了以下查询,它选择了我需要的数据

SELECT par.wo, l.addr, eml.maildate, lp.workdate
FROM parsed AS par, emails AS eml, list AS l, locateparsed AS lp
WHERE par.status != 0 AND eml.id = par.origid AND par.wo = l.wo AND par.wo = lp.wo

是否可以让每个返回的行在 "completed" table 中检查匹配 'wo' 并且如果使用一个查询匹配则不输出它?

这正是为什么 from 中的逗号分隔表让我如此恼火的原因,您只是看不到连接类型使用的明显性。试试这个:

SELECT
  par.wo,
  l.addr,
  eml.maildate,
  lp.workdate
FROM
  parsed AS par
  INNER JOIN emails AS eml      ON eml.id = par.origid
  INNER JOIN list AS l          ON par.wo = l.wo
  INNER JOIN locateparsed AS lp ON par.wo = lp.wo
  LEFT  JOIN completed          ON par.wo = completed.wo
WHERE
  par.status != 0 
  AND completed.wo IS NULL