使用OR Case选择数据并仍然得到错误的结果

时间:2016-03-03 11:25:44

标签: php mysql sql

我从MySQL表中获取数据,并带有如下查询:

$sql = "SELECT DISTINCT n.email, e.Name, e.Surname, e.Telephone, e.Street
FROM `nonvalid` n
LEFT JOIN `enq` e ON n.`enqID` = e.ID 
WHERE (LENGTH(e.Telephone) > 0 OR LENGTH(e.Street) > 0) GROUP BY n.email";

但我仍然看到enter image description here

第1行和第2行很好但是3和4在两个字段中都没有显示。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

试试这个

SELECT DISTINCT n.email, e.Name, e.Surname, e.Telephone, e.Street
FROM `nonvalid` n
LEFT JOIN `enq` e 
ON n.`enqID` = e.ID 
AND (LENGTH(e.Telephone) > 0 OR LENGTH(e.Street) > 0)
GROUP BY n.email

答案 1 :(得分:1)

这是因为您的左连接,您进行左连接,因此左表中的所有记录都将显示,在这种情况下,右表列(e.Telephone,e.Street)将为null