簡體   English   中英

MySQL:如何在左聯接中使用列別名?

[英]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

這個查詢非常簡單,但是為什么它不起作用,或者實現此目的的最佳方法是什么?

我將不勝感激。 謝謝

您不能在ONWHERE子句中使用列別名,因為列別名已分配給結果集中的值,但是ONWHERE用於創建結果集。 您需要使用另一個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.

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