だから私は次のクエリを実行し、返されたnull値を取り除くことができるかどうか、または教員と学生の列が同じ行で繰り返されないため、テーブルを結合する方がよいかどうか疑問に思いました。一方の教員の列にnullがある場合(学生)はデータを持っており、その逆も同様です。
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を配置します。JOINだけで、両方の行が正しい行が取得されます。
JOINの代わりに使用するLEFT JOINと、余分な行がなくなるはずです。
また、JOINは一切使用できません。このようにWHEREステートメントを使用すると、はるかに高速になります。
SELECT *
FROM rifd,
faculty,
student
WHERE rifd.number = faculty.tagid
AND rifd.number = student.tagid