Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

255
Vistas
Encuentra las filas que tienen la misma columna

Quiero saber cómo hacer lo siguiente en SQL:

 SELECT * FROM table_A WHERE id IN(:myValues) AND other_colum has the same value

Por ejemplo, si tengo una tabla de conversación (iduser, idconversation), quiero una consulta SQL que devuelva algunas de las identificaciones que tienen la misma identificación de conversación. debería volver

 35;105 37;105 35;106 37;106

Con 35,37 los idUsers y 105.106 las conversaciones que tienen en común.

Para ir más allá, trabajo con Doctrine y PostegreSQL , y se genera la tabla que quiero consultar (relación de muchos a muchos), pero tengo dificultades para integrar la subconsulta.

 **public function getAllCommonConversationByUserId($ids) { return $this->createQueryBuilder('c') ->select('c.id') ->innerJoin('c.idUser', 'recievedConversation') ->where('recievedConversation IN (:ids)') ->andWhere('$qb->expr()->eq("SELECT id FROM table GROUP BY(id) HAVING COUNT(*) >1")') ->setParameter(':ids', $ids) ->getQuery() ->getResult(); }**
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Sólo:

 SELECT * FROM table_A WHERE idconversation in ('105','106') and iduser in ('35','37')

ACTUALIZACIÓN: ¿Está diciendo si la conversación de identificación está duplicada? (¿mostrando varias veces?)

Si es así:

 Select * From table where idconversation in ( Select idconversation From table group by (idconversation) Having count(*) >1 ) --where iduser in ('35','37')
over 4 years ago · Santiago Trujillo Denunciar

0

Puede obtener las conversaciones usando group by y having :

 SELECT conversationid FROM table_A WHERE userid in (35, 37) GROUP BY userid HAVING count(distinct userid) = 2;

Si desea las filas originales, puede volver a unirse a la tabla original.

over 4 years ago · Santiago Trujillo Denunciar

0

Intenta hacer esto:

 select id, conversation from [your table name] where conversation in ( select conversation from [your table name] where id in (35) )

Devuelve a todos los participantes de la conversación con ID de usuario = 35

Si tiene duplicados en su tabla, agregue una declaración distinta a la seleccionada.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda