PHP只从左侧连接的MySQL字段返回空值,而MySQL终端按预期运行
我正在运行以下查询PHP只从左侧连接的MySQL字段返回空值,而MySQL终端按预期运行,php,mysql,Php,Mysql,我正在运行以下查询 SELECT a.user_id , u.username , p.person_name FROM activity a LEFT JOIN users u ON u.user_id = a.user_id LEFT JOIN persons p ON p.person_name = a.person_name u.username和p.person\u name可能都是null。在MySQL终端中,对于用户名或
SELECT a.user_id
, u.username
, p.person_name
FROM activity a
LEFT
JOIN users u
ON u.user_id = a.user_id
LEFT
JOIN persons p
ON p.person_name = a.person_name
u.username
和p.person\u name
可能都是null
。在MySQL终端中,对于用户名
或人名
具有非空值的任何用户id
都会正确返回。如果其中一个设置为null
,那么MySQL将按预期返回null
但是,通过PHP7.2.0运行此查询将返回人名
和用户id
上的allnull值
我尝试使用原始MySQLi查询和CodeIgniter3的活动记录运行此查询。这两个字段都返回连接字段的所有null
值
在这里,我是否遗漏了一些东西,这些东西会迫使PHP在一个可空字段上只检索
null
值?我可以看到问题的PHP部分吗?如果看不到PHP,就不可能回答这个问题。在CI中,使用活动记录系统进行测试,并作为一个简单的查询函数-因此,$sql={over sql};var_dump($this db->query($sql)->result_array());我们需要php代码来帮助您。我认为表的一些示例数据nof比php代码更有用。我注意到:当我看到您通过字符串值加入人员和活动时,我感觉不太好。如果它们之间有任何差异(一个spche、一个尾声、一个小写、一个大写等等),它将不起作用!但是null=null总是正确的!因此,您将连接从name=null的person到name=null的activity的所有行,我认为这不是您想要的!