下面的SQL查询适用于我,但是当staffNo为null 6次(每个员工一次)时,它会返回属性值。我想返回属性所有者,即使staffNo为空,没有6个返回值。
SELECT s.branchNo, s.staffNo, s.fName, s.lName, propertyNo, p.staffNo,
o.fName, o.lName, o.ownerNo
FROM staff s, propertyforrent p, privateowner o
WHERE s.staffNo = p.staffNo AND o.ownerNo = p.ownerNo
OR p.staffNo IS NULL AND o.ownerNo = p.ownerNo
ORDER BY s.branchNo, s.staffNo, propertyNo结果
B003 SG14 David Ford PG16 SG14 Tony Shaw CO93
B003 SG14 David Ford PG4 NULL Tina Murphy CO40
B003 SG37 Ann Beech PG21 SG37 Carol Farrel CO87
B003 SG37 Ann Beech PG36 SG37 Tony Shaw CO93
B003 SG37 Ann Beech PG4 NULL Tina Murphy CO40
B003 SG5 Susan Brand PG4 NULL Tina Murphy CO40
B005 SL21 John White PG4 NULL Tina Murphy CO40
B005 SL41 Julie Lee PG4 NULL Tina Murphy CO40
B005 SL41 Julie Lee PL94 SL41 Carol Farrel CO87
B007 SA9 Mary Howe PA14 SA9 Joe Keogh CO46
B007 SA9 Mary Howe PG4 NULL Tina Murphy CO40以下是所需的结果
B003 SG14 David Ford PG16 SG14 Tony Shaw CO93
B003 SG14 PG4 NULL Tina Murphy CO40
B003 SG37 Ann Beech PG21 SG37 Carol Farrel CO87
B003 SG37 Ann Beech PG36 SG37 Tony Shaw CO93
B005 SL41 Julie Lee PL94 SL41 Carol Farrel CO87
B007 SA9 Mary Howe PA14 SA9 Joe Keogh CO46提前感谢!
发布于 2013-01-24 04:51:45
使用左连接可能会有所帮助
SELECT s.branchNo, s.staffNo, s.fName, s.lName, propertyNo, p.staffNo,
o.fName, o.lName, o.ownerNo
FROM privateowner o
LEFT JOIN propertyforrent p ON o.ownerNo = p.ownerNo
LEFT JOIN staff s ON s.staffNo = p.staffNo
ORDER BY s.branchNo, s.staffNo, propertyNo发布于 2013-01-24 04:56:02
试试这个:
SELECT s.branchNo, s.staffNo, s.fName, s.lName, propertyNo, p.staffNo,
o.fName, o.lName, o.ownerNo
FROM staff AS s LEFT JOIN propertyforrent AS p
ON s.staffNo = p.staffNo AND p.staffNo IS NOT NULL
LEFT JOIN privateowner AS o
ORDER BY s.branchNo, s.staffNo, propertyNo;发布于 2013-01-24 04:56:45
希望这是正确的..。
SELECT s.branchNo, s.staffNo, s.fName, s.lName, propertyNo, p.staffNo, o.fName, o.lName, o.ownerNo
FROM staff s
join propertyforrent p on s.staffNo = p.staffNo
left join privateowner o on o.ownerNo = p.ownerNo
where p.staffNo is not null
ORDER BY s.branchNo, s.staffNo, propertyNo大卫·福特下面的空栏是故意的吗?
https://stackoverflow.com/questions/14488910
复制相似问题