我正在尝试LEFT JOIN一个带有用户表的表 . 我正在使用LEFT JOIN因为我仍然希望返回在连接表中没有条目的用户 . 这是有效的,但是在连接表中没有条目的任何条目都会丢失它们的ID(uid)(这就是我链接表的方式)
我的查询:
$sql = 'SELECT *
FROM `users` cu
LEFT JOIN `product_registrations` cpr
ON cu.uid = cpr.uid';
拥有产品注册的人会按照自己的意愿返回所有内容,但是人们似乎没有丢失他们的uid(结果中显示为null)
我真的迷路了,任何建议都赞赏!
3 回答
如果没有cpr记录,则cpr.uid将为null . 而不只是使用*,为cu.uid添加别名列名 .
另外,除非有特殊原因,否则请勿使用* . 只需使用您需要的字段 .
我相信这就是
LEFT JOIN
死了 . 如果您正在尝试获取cpr.uid
字段,如果未找到匹配项则为NULL
但您可以使用COALESCE()
函数显示默认值,表示缺席cpr.uid应为null而不是cu.uid . 如果您阅读cu.uid或cpr-uid,请查看您的逻辑并尝试以下操作:
在我的查询中,您不应该有任何空值