所以我做了以下查询,我想知道我是否可以摆脱返回的空值,或者更好地结合表,因为教师和学生列不在同一行中重复。在其中一个的教师列中存在空值,另一个(学生)有数据,反之亦然。
SELECT * FROM rifd
LEFT JOIN faculty ON rifd.number = faculty.tagid
LEFT JOIN student ON rifd.number= student.tagid
尝试UNION
查询:
SELECT * FROM rifd JOIN faculty ON rifd.number = faculty.tagid
UNION
SELECT * FROM rifd JOIN student ON rifd.number = student.tagid
SELECT * FROM rifd
LEFT JOIN faculty ON rifd.number = faculty.tagid
LEFT JOIN student ON rifd.number= student.tagid
而不是使用 LEFT JOIN 只使用 JOIN。左连接获取所有左列行并添加右列,如果没有正确的值,它将放置 NULL。Just JOIN 将采用两行都正确的行。
使用JOIN
代替LEFT JOIN
并且您的额外行应该消失。
您也可以根本不使用 JOIN。像这样使用 WHERE 语句,它要快得多:
SELECT *
FROM rifd,
faculty,
student
WHERE rifd.number = faculty.tagid
AND rifd.number = student.tagid