簡體   English   中英

MySQL加入UNION的結果

[英]MySQL JOIN the result of UNION

是否可以將兩個表的UNION結果與第三個表連接起來? 像這樣的東西:

(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`

但是這段代碼不起作用。 我可以在UNION之前將每個SELECT查詢中的JOIN移動,但寧願嘗試使用UNION結果進行JOIN

我怎樣才能解決這個問題?

對的,這是可能的。 但是,您的代碼不正確,因為您缺少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`
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`;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM