0

Mysqlクエリで3つのテーブル(table1、table2、table3)を結合しようとしています。ここで、3つのテーブル(つまり「PID」)に存在する共通列を比較して、2つのテーブル(table1とtable2)から一致するデータを取得します。

これらの3つのテーブルを結合すると、指定された日付( '2012-12-27')のデータがtable1になく、完全な空白行が返されます。ここでは、指定された日付と一致するtable2から一致するデータを取得します。他のテーブルに一致するデータがない場合は「ZERO」または「NULL」。table1..空白行全体の代わりに。

これが私が試していた、完全な空白行を返すコードです。

SELECT * FROM table3 b
LEFT JOIN table1 r ON r.PID = b.PID
LEFT JOIN table2 a ON ab.PID = b.PID
WHERE b.Name ='stallion' AND r.Date = '2012-12-27' AND a.Date = '2012-12-27'
;
4

2 に答える 2

0

2 つの異なる JOIN ステートメントを使用してから、それらを UNION します。

于 2013-01-02T16:34:59.533 に答える
0

table1( r)内にデータがない行はr.Data= NULL であるため、WHERE 条件によって除外されます。WHERE 条件に追加OR r.Date IS NULLするか、条件を ON 句に移動する必要があります。

SELECT * FROM table3 b
LEFT JOIN table1 r ON r.PID = b.PID AND r.Date = '2012-12-27'
LEFT JOIN table2 a ON a.PID = b.PID AND a.Date = '2012-12-27'
WHERE b.Name ='stallion';
于 2013-01-02T16:36:39.253 に答える