0

だから私は次のクエリを実行し、返されたnull値を取り除くことができるかどうか、または教員と学生の列が同じ行で繰り返されないため、テーブルを結合する方がよいかどうか疑問に思いました。一方の教員の列にnullがある場合(学生)はデータを持っており、その逆も同様です。

SELECT * FROM rifd
LEFT JOIN faculty ON rifd.number = faculty.tagid 
LEFT JOIN student ON rifd.number= student.tagid
4

4 に答える 4

3

UNIONクエリを試してください:

SELECT * FROM rifd JOIN faculty ON rifd.number = faculty.tagid
UNION
SELECT * FROM rifd JOIN student ON rifd.number = student.tagid
于 2012-07-06T11:33:14.973 に答える
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だけで、両方の行が正しい行が取得されます。

于 2012-07-06T11:32:03.047 に答える
1

JOINの代わりに使用するLEFT JOINと、余分な行がなくなるはずです。

于 2012-07-06T11:32:18.413 に答える
0

また、JOINは一切使用できません。このようにWHEREステートメントを使用すると、はるかに高速になります。

SELECT * 
  FROM rifd,
       faculty,
       student
WHERE rifd.number = faculty.tagid
  AND rifd.number = student.tagid
于 2012-07-06T11:41:12.927 に答える