Matriz de resultados de subconsultas de MySQL

Quiero usar una matriz de (id_1) ids de una selección en table_1 para obtener todas las filas de table_2 donde id_2 = id_1

  SELECT field_b
  FROM table_2
  WHERE id_2 IN (
         SELECT id_1 FROM table_1 WHERE field_a = 1234
  );

A continuación se muestran ejemplos de mis tablas como referencia:

  mysql> select * from table_1;
    +-------+---------+
    |  id_1 | field_a |
    +-------+---------+
    |     1 |    1234 |
    +-------+---------+
    |     2 |    1234 |
    +-------+---------+


mysql> select * from table_2;
+---------+---------+
|    id_2 | field_b |
+---------+---------+
|     1   |  5678   |
+-------+-----------+
|     2   |  0013   |
+-------+-----------+

preguntado el 27 de agosto de 11 a las 20:08

¿Quieres hacer INNER JOIN simple? SELECCIONAR * de table_2 INNER JOIN table_1 en table_1.id_1 = table_2.id_2? Puede agregar las condiciones que desee, por ejemplo, DONDE campo_a = 1234 -

El código que publicaste usando IN Deberia trabajar... -

@Martin ese es un buen punto, ahora que lo mencionas. Me pregunto qué problemas está teniendo realmente el OP. -

3 Respuestas

¿Un INNER JOIN funcionaría igual de bien para usted?

SELECT field_b
FROM table_2
INNER JOIN table_1
    ON table_2.id_2 = table_1.id_1
WHERE table_2.field_a=1234

Respondido 28 ago 11, 00:08

No sé si esto es lo que necesitas:

SELECT * FROM table_2 t2
INNER JOIN table_1 t1
ON t2.id_2 = t1.id_1
WHERE t1.field_a = 1234

Respondido 28 ago 11, 00:08

Otra opción:

SELECT field_b
FROM table_2
WHERE EXISTS 
      ( SELECT * 
        FROM table_1 
        WHERE field_a = 1234
          AND table_2.id_2 = table_1.id_1
      )

Respondido 28 ago 11, 02:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.