10

UNION2 つのテーブルの結果を 3 つ目のテーブルと結合することはできますか? このようなもの:

(SELECT DISTINCT `Fund_ID`, `Fund_Name` FROM `admin` 
    UNION 
SELECT `Fund_ID`,`Fund_Name` FROM `admin_custom` WHERE `admin_custom`.`user_id` = 361)  a
LEFT JOIN `qt1`
ON `qt1`.`Fund ID` = a.`Fund_ID`

しかし、このコードは機能しません。JOIN前に各SELECTクエリ内に移動することもできUNIONましたが、むしろ結果を試してみたいとJOIN思いますUNION

どうすればこれを修正できますか?

4

2 に答える 2

14

はい、可能です。SELECTただし、最初の選択が行セット (実行時に作成されたテーブル) になるため、ステートメント自体が欠落しているため、コードは正しくありません。SELECTつまり、取得する演算子とフィールドを指定する必要があります。最も単純なケース:

SELECT
  a.*
FROM
  (SELECT DISTINCT `Fund_ID`, `Fund_Name` FROM `admin` 
    UNION 
   SELECT `Fund_ID`,`Fund_Name` FROM `admin_custom` WHERE `admin_custom`.`user_id` = 361)  AS a
  LEFT JOIN `qt1`
    ON `qt1`.`Fund ID` = a.`Fund_ID`
于 2013-10-01T07:53:16.523 に答える
3
SELECT * FROM
(SELECT DISTINCT `Fund_ID`, `Fund_Name` FROM `admin` 
    UNION 
SELECT `Fund_ID`,`Fund_Name` FROM `admin_custom` WHERE `admin_custom`.`user_id` = 361)  a
LEFT JOIN `qt1`
ON `qt1`.`Fund ID` = a.`Fund_ID`;
于 2013-10-01T07:51:25.697 に答える