0
我試圖根據用戶的ID加入第二個表useri_ban
,並附加條件:useri_ban.start_ban = max_start
。如何訪問加入內的子查詢中的父列
爲了讓我算算max_start
,我要運行以下子查詢:
(SELECT MAX(ub.start_ban) AS max_start, user_id FROM useri_ban ub WHERE ub.user_id = useri.id)
此外,爲了增加max_start
每一行,我需要內加入這個子查詢的結果爲主要結果。但是,似乎一旦我應用該聯接,子查詢就不能再訪問useri.id
。
我在做什麼錯?
SELECT
useri.id as id,
useri.email as email,
useri_ban.warning_type_id as warning_type_id,
useri_ban.type as type,
useri.created_at AS created_at
FROM `useri`
inner join
(SELECT MAX(ub.start_ban) AS max_start, user_id FROM useri_ban ub WHERE ub.user_id = useri.id) `temp`
on `useri`.`id` = `temp`.`user_id`
left join `useri_ban` on `useri_ban`.`user_id` = `useri`.`id` and `useri_ban`.`start_ban` = `max_start`
第1步:確保您需要的子查詢中的數據被保留。 第2步:給子表一個別名。 第3步:外部選擇中的引用別名表 – Fallenreaper