Search code examples
mysqlsqlsubqueryinner-join

Check if two users in the same chat


I need to be able to get only if there are matches on 2 different user id and match the 'chats_idchats' with the 'idchats' Query used:

SELECT *
  FROM chats_has_usuarios chu
 INNER JOIN chats c
    ON c.idchats = chu.chats_idchats
 WHERE chu.chats_idchats = c.idchats
   AND chu.usuarios_idusuarios = 1
    OR chu.usuarios_idusuarios = 2
chats_idchats usuarios_idusuarios idchats fecha
8 1 8 2020-12-15
8 2 8 2020-12-15
9 2 9 2020-12-15

I want to get

chats_idchats usuarios_idusuarios idchats fecha
8 1 8 2020-12-15
8 2 8 2020-12-15

Solution

  • Try:

    SELECT * FROM chats_has_usuarios chu
    DISTINCT chu.usuarios_idusuarios
    INNER JOIN chats c ON c.idchats = chu.chats_idchats
    WHERE chu.chats_idchats = c.idchats
    AND chu.usuarios_idusuarios = 1
    OR chu.usuarios_idusuarios = 2
    

    If you want to use with any ids:

    SELECT * FROM chats_has_usuarios chu
    DISTINCT chu.usuarios_idusuarios
    INNER JOIN chats c ON c.idchats = chu.chats_idchats
    WHERE chu.chats_idchats = c.idchats