比较 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
我创建了以下查询,它选择了我需要的数据
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