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