2017-09-24 28 views
2

我希望選擇一個用戶參與的消息的表中的所有對話這個查詢的工作爲:MySQL的ID爲等於列別名

select distinct message_conversationID from messages where message_userID = 2 

不過,我當時想反過來提取物給出外鍵message_conversationID的所有會話標題(來自另一個表)。我嘗試這樣做:

select conversation_titles from conversations having conversation_id = 
(select distinct message_conversationID as temp from messages where message_userID = 2) 

但是,看來我無法驗證其ID與多行數據等於。我還有什麼可以在別名列中提取所有帶有ID的標題?

回答

1

如果你想有不同的conversation_title,你可以在用戶無論是與(推薦)現有查詢或JOIN query

隨着IN query匹配IN query,您的查詢應該是這樣的:

select distinct conversation_titles from conversations where conversation_id IN 
(select message_conversationID from messages where message_userID = 2) 

JOIN query,可以做類似的操作:

select distinct conversation_titles from conversations c inner join 
    messages m on c.conversation_id = m.message_conversationID 
where m.message_userID = 2 

我會推薦第二個查詢在你的情況下使用,因爲它比第一個查詢更有效。