![](/img/trans.png)
[英]Mysql further join using concatenated field on a union result to filter them
[英]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.