共通の主キーに基づいて 4 つのテーブルを結合する必要があります。sqlite が完全な外部結合を実装した場合、次のようになります (最適化は考慮されていません)。
SELECT S.pair, C.ball, P.bluejeans, B.checkered
FROM Socks S
FULL OUTER JOIN Caps C
FULL OUTER JOIN Pants P
FULL OUTER JOIN Boxers B
WHERE S.color = C.color AND S.color = P.color AND S.color = B.color;
私は長い間一生懸命探してきましたが、私が見つけた最高のものは、左結合とユニオンオールで実装されたこの2テーブルのsqlite完全結合でした:
SELECT employee.*, department.*
FROM employee LEFT JOIN department
ON employee.DepartmentID = department.DepartmentID
UNION ALL SELECT employee.*, department.*
FROM department LEFT JOIN employee
ON employee.DepartmentID = department.DepartmentID
WHERE employee.DepartmentID IS NULL;
これを変更して 2 つ以上のテーブルで機能するようにしようとしていますが、SQL は初めてで、あまりうまくいきません。妥当な時間内にこの結果を得ることができますか?
私は 3 つのテーブルの正しい実装を持っていると思います (正しくないかもしれません) が、4 に対してはまだ取得できないようです。
SELECT S.pair, C.ball, P.bluejeans
FROM Socks S LEFT JOIN Caps C LEFT JOIN Pants P
ON C.color = S.color AND P.color = S.color
UNION ALL
SELECT S.pair, C.ball, P.bluejeans
FROM Socks S LEFT JOIN Caps C LEFT JOIN Pants P
ON S.color = C.color AND S.color = P.color
WHERE S.color IS NULL;
どんな助けでも大歓迎です