示例场景;可以说我在寻找员工及其雇主

tblEmployee
eid | name
1  | james
2  | harry

tblCompany
cid | name
1  | ABC Ltd
2  | XYZ Corp

tblMappings
mid | eid | cid
1  | 1   | 2


James被分配给XYZ Corp公司,但是harry没有分配。我想撤出所有员工,无论他们是否被分配;

SELECT * FROM `tblEmployee`
LEFT JOIN `tblMappings` ON
`tblEmployee`.`eid` = `tblMappings`.`eid`


这将在phpMyAdmin中返回以下内容;

eid | name  | mid  | eid  | cid
1   | james | 1    | 1    | 2
2   | harry | NULL | NULL | NULL


我正在使用PHP执行查询并使用:

while($row=mysql_fetch_assoc($results)) { ...blah.... }


但是对于哈利$ row ['eid']是空白。我不确定如何解决这一问题,因此任何观点都将不胜感激。非常感谢 :)

最佳答案

eid中的tblEmployee字段不为空,但是eid中的tblMappings字段为空,这是预期的,因为该表中没有匹配的记录。指定所需的字段而不是SELECT * ...

SELECT e.*, m.mid, m.cid FROM `tblEmployee` e
LEFT JOIN `tblMappings` m ON
e.`eid` = m.`eid`

关于php - mysql左加入php中的空值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7259720/

10-13 00:48