SQL - Consulta entre dos tablas

 
Vista:
sin imagen de perfil

Consulta entre dos tablas

Publicado por Diego (5 intervenciones) el 25/05/2017 09:23:10
Buenos días.

Quería saber si se puede hacer la siguiente consulta :

Teniendo una tabla A con valores productos ej. platano, manzana, pera y una tabla B con campos proveedor, producto ej proveedor1, platano - proveedor1, manzana - proveedor1 pomelo - proveedor 2, manzana,....

Como podría obtener la lista de proveedores que sirvan los productos de la tabla A? Y si es posible y ninguno provee todos los productos, como podría ordenarlos x los que más se acercan a todos los productos?

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta entre dos tablas

Publicado por leonardo_josue (1173 intervenciones) el 25/05/2017 16:08:42
Hola Diego:

Hay muchas formas de obtener el resultado que quieres, pero básicamente el problema se resume en hacer CONTEOS...

Supongamos que tienes tu tabla así:

1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> SELECT * FROM tabla;
+------+-------------+----------+
| id   | proveedor   | producto |
+------+-------------+----------+
|    1 | proveedor 1 | platano  |
|    2 | proveedor 1 | manzana  |
|    3 | proveedor 1 | naranja  |
|    4 | proveedor 2 | platano  |
|    5 | proveedor 2 | manzana  |
|    6 | proveedor 2 | higo     |
|    7 | proveedor 2 | durazno  |
+------+-------------+----------+
7 rows in set (0.11 sec)

Entonces, para saber cuántos productos vende cada proveedor, simplemente haces un COUNT:

1
2
3
4
5
6
7
8
9
10
11
mysql> SELECT proveedor, count(producto) total_productos
    -> FROM tabla
    -> GROUP BY proveedor
    -> ORDER BY total_productos DESC;
+-------------+-----------------+
| proveedor   | total_productos |
+-------------+-----------------+
| proveedor 2 |               4 |
| proveedor 1 |               3 |
+-------------+-----------------+
2 rows in set (0.11 sec)

Ahora, para relacionar esta tabla con la de productos, simplemente tienes que hacer un JOIN... checa si esto es más o menos lo que necesitas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta entre dos tablas

Publicado por Diego (5 intervenciones) el 25/05/2017 16:18:23
Hola.

Muchas gracias por la respuesta, pero sigo sin verlo. La consulta quehaces para ver el número de productos de cada proveedor sin problema, pero como hago para consultar cual es el proveedor que solo tiene productos que yo necesito? (los de la tabla 1) Es decir, si un proveedor tiene 3 productos y están en la tabla 1 todos, ese proveedor me vale, en cambio si ese proveedor tiene además de eso productos, alguno mas que no estén en la tabla 1, no me valdría.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha disminuido su posición en 34 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consulta entre dos tablas

Publicado por Nicolas (1 intervención) el 25/05/2017 16:32:25
Hola Diego.
En la consulta deberias utilizar los JOIN para vincular las si son 2 o más tablas y asi poder generar condiciones de selección el WHERE.

Para Ordenarlos tendrias que utilizar el ORDER BY y si quieres agruparlos por el GROUP BY.

Espero que te sea de ayuda.
Abrazo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta entre dos tablas

Publicado por Diego (5 intervenciones) el 25/05/2017 16:59:26
Hola

Al hacer el join me salen todos los proveedores que tienen al menos 1 de los productos, pero quiero que me salgan solo los que tengan todos los productos de la tabla 1.

Gacias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta entre dos tablas

Publicado por leonardo_josue (1173 intervenciones) el 25/05/2017 17:19:56
Mucho ojo Diego, no esperes encontrar en este foro una respuesta sólo para contar y pegar... aquí te daremos IDEAS de lo que puedes hacer, pero a final de cuentas esperamos que tengas un poco de iniciativa y lo puedas terminar de resolver por tu cuenta...

ya te contesté en otro foro

http://www.lawebdelprogramador.com/foros/MySQL/1605616-Consulta-entre-dos-tablas.html

sigue dándole un vistazo... como ayuda extra INVESTIGA LA CLÁUSULA HAVING y cómo se usa con el operador COUNT... eso es lo único que falta...

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta entre dos tablas

Publicado por Diego (5 intervenciones) el 25/05/2017 18:24:01
OK, GRACIAS, MIRARÉ DESPUÉS CON MAS CALMA.

UN SALUDO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta entre dos tablas

Publicado por Diego (5 intervenciones) el 26/05/2017 11:27:31
Hola, efectivamente con los consejos he conseguido el objetivo. Te contesto más en detalle en el otro post.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar