我希望从用户参与的消息表中选择所有对话。此查询适用于此:
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的标题?
答案 0 :(得分:1)
如果您希望使用不同的conversation_title,则可以使用与您现有查询匹配的IN query
或JOIN 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
我建议在你的情况下使用第二个查询,因为它比第一次查询更有效。