3番目のテーブルが別の2つに結合するクエリを考え出そうとしています。問題は、この最初のテーブルにさまざまなバージョンがあり、クエリでテーブル 1 の列を調べてから、結合する正しいテーブルを選択する必要があることですが、結果のクエリでは、テーブル 1 のすべての行を返す必要があり、追加のテーブル 3 を結合するだけです。 WHERE 句を満たす特定の行。 これは可能ですか?
例:
表 1 = ユーザー
表 2 = バナー
表 3 = UserSettings OR AdminSettings OR Nothing
クエリは次のようになります...
WHERE User.rank='admin' LEFT JOIN AdminSettings
WHERE User.rank='user' LEFT JOIN UserSettings
私の現在のクエリはこれです:
$query = "SELECT * FROM Users as U WHERE U.user_id = :id ";
$query .= "LEFT JOIN Banners as B ON U.banner_id = B.banner_id ";
$query .= "LEFT JOIN AdminSettings ON U.server_id = AdminSettings.user_id WHERE U.rank='Admin' ";
$query .= "LIMIT 1";
問題は、User.rank='admin' を持つ行のみが表示され、User.rank='user' が置かれている行が表示されないことです。