クエリが他の値とともに null 値も返すようにする方法に興味があります。
更新: 次のクエリは、場所 ID、訪問日、訪問時間、各訪問のバス名を含むテーブルを出力することになっています。以下のクエリは出力を提供しますが、下の表のように null は含まれません。結果には null も含まれる必要があります。
全部で 3 つのテーブルがあります: Location1、バス & 訪問。だから私はこの(以下の)クエリを使用してIDを抽出し、すべてのテーブルを結合しています。このクエリは、フロリダへの訪問のみを検索します。
たとえば、次のクエリを使用します。
SELECT LOC.LOC_ID, VISIT.VISIT_DATE, VISIT.VISIT_TIME, BUS.BUS_NAME
FROM BUS, LOCATION1, VISIT
WHERE VISIT.BUS_ID = BUS.BUS_ID
AND VISIT.LOC_ID = LOCATION1.LOC_ID
AND BUS.BUS_NAME IN (
SELECT BUS_NAME
FROM BUS
WHERE BUS_ID IN (
SELECT BUS_ID
FROM VISIT
WHERE LOC_ID IN (
SELECT LOC_ID
FROM LOCATION1
WHERE LOC_NAME='Florida')));
まだバスが割り当てられていない訪問があり、一部の値が であるとしますnull
。
IN
したがって、演算子を使用すると一連の値が返されますが、値は返されないと私は信じていnull
ます。exists
代わりに使用するとどうなりますか?
テーブルは次のようになります。
Loc_name Loc_id visit_date visit_time bus_name
Florida 1 26-mar-2009 2:00pm xyz
Florida 3 29-jul-2010 3:00pm abc
Florida 8 22-may-2013 2:50pm (null)
.
.
.
誰かがこれで私を助けてくれることを願っています。
ありがとう
更新 2:
答えを見つけた!
SELECT LOC.LOC_ID, VISIT.VISIT_DATE, VISIT.VISIT_TIME, BUS.BUS_NAME
FROM LOCATION1
LEFT JOIN VISIT ON LLOCATION1.LOC_ID = VISIT.LOC_ID
LEFT JOIN BUS ON BUS.BUS_ID = VISIT.BUS_ID
WHERE LOC_NAME = 'Florida';
再度、感謝します!