用于将表与另一行的多个行匹配的SQL查询

时间:2013-11-06 11:52:49

标签: mysql sql

对措辞不佳的问题道歉。

我有两个表,分别称为会话 conversation_users 。每个会话可以附加多个用户。字段如下:

会话

  • conv_id
  • conv_author_id
  • conv_date

conversation_users

  • cu_id
  • cu_conv_id
  • cu_user_id

现在,为了避免与同一用户重复对话。我想检查具有ID的用户是否已经存在对话,例如12和25.如果存在,我希望获得该对话的ID。

如何构建查询来执行此操作?

1 个答案:

答案 0 :(得分:3)

  

我想检查一下用户已经存在的对话   ID,比如12和25。

您可以使用EXISTS

SELECT CASE WHEN EXISTS
(
    SELECT 1 FROM conversation_users cu
    WHERE cu.cu_conv_id = c.conv_id
    AND   cu.cu_user_id IN (12, 25)
) THEN 'Yes, these users are in this conversation' 
  ELSE 'This conversation is between different users' END AS Result
FROM conversations c