MySQL等于列别名的MySQL

时间:2017-09-24 22:56:55

标签: mysql

我希望从用户参与的消息表中选择所有对话。此查询适用于此:

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 个答案:

答案 0 :(得分:1)

如果您希望使用不同的conversation_title,则可以使用与您现有查询匹配的IN queryJOIN 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

我建议在你的情况下使用第二个查询,因为它比第一次查询更有效。