Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择带有或Case的数据,但仍然得到错误的结果_Php_Mysql_Sql - Fatal编程技术网

Php 选择带有或Case的数据,但仍然得到错误的结果

Php 选择带有或Case的数据,但仍然得到错误的结果,php,mysql,sql,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"; 但我仍然明白 第1行和第2行很好

我使用如下查询从
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";
但我仍然明白

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

试试这个

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

这是因为您的左联接是左联接,所以左表中的所有记录都将显示,在这种情况下,右表列(e.Telephone、e.Street)将为空

您的和我的有什么区别?在执行左联接时,将右侧表的条件放在ON子句中,以获得真正的左联接行为。(在WHERE中,你会得到常规的内部连接结果。)仍然有相同的错误数据,我不应该得到。请详细说明你的问题?不,我不是在说。我说用示例(虚拟数据)解释你的问题,然后我可以帮助你。你能发送你的快照吗results@BRG您创建了一个左联接,因此将显示左表中的所有记录,在这种情况下,右表列(street,tel)将为null。那么我应该怎么做才能不返回null值呢?可能是右连接?@BRG使用内部连接,将此左连接替换为内部连接我对内部连接也有相同的结果查询似乎可以。。。。。。。。。。在没有分组依据的情况下检查同一查询,然后使用简单联接进行检查……没有分组依据的情况下也会给我重复的结果