[英]MySQL: How to use column alias in left join?
我正在嘗試在左聯接中使用列別名,但出現未知字段時出現SQL錯誤。
select *, (select SenderId from messages where messageId = 5) as senderId from threads
Left join users where users.id = senderId
這個查詢非常簡單,但是為什么它不起作用,或者實現此目的的最佳方法是什么?
我將不勝感激。 謝謝
您不能在ON
或WHERE
子句中使用列別名,因為列別名已分配給結果集中的值,但是ON
和WHERE
用於創建結果集。 您需要使用另一個JOIN
。
SELECT t.*, m.senderId, u.*
FROM threads AS t
CROSS JOIN messages AS m
LEFT JOIN users AS u ON u.id = m.SenderId
WHERE m.messageId = 5
select t.*, mu.*
from threads as t
Left Join
(select SenderId,users. *
from messages, users
where messages.messageId
= users.id and messsageId = 5) as mu
您需要使用一些ID連接線程和mu表
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.