我一直在寻找,但找不到我想要做的事情的答案。 我不知道是否可以通过以下方式创建查询。
$sql_call = "SELECT table.item,table.item,table.item FROM cust
LEFT JOIN contact ON cust.id = contact.client_id
LEFT JOIN survey_audit ON cust.id = survey_audit.cust_id
WHERE cust.clinic='$clinic_id' AND contact.participate='1' AND survey_audit.survey_id != '$post_survey_id'";
上面的查询没有做我想做的事情,那就是:
从表中获取数据,其中cust.clinic=something AND contact.participate=something AND(这是我不确定的部分)在Survey_audit表中,没有具有此ID的行。
是否可以要求sql找到某个结果,其中something=something AND在特定表中没有行?
最佳答案
你走在正确的轨道上。您只需查找 survey_audit.survey_id
为 NULL 的情况。
SELECT table.item,table.item,table.item
FROM cust
LEFT JOIN contact
ON cust.id = contact.client_id
LEFT JOIN survey_audit
ON cust.id = survey_audit.cust_id
WHERE cust.clinic='$clinic_id'
AND contact.participate='1'
AND survey_audit.survey_id IS NULL
这是一个非常有用的资源,可帮助您确定如何形成更复杂的连接场景。您的案例是本页的第四个示例。
http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/
关于PHP MySQL 查询 WHERE equals AND 行不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28069908/