Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Consulta SELECT a tabla de relacion

Estas en el tema de Consulta SELECT a tabla de relacion en el foro de Mysql en Foros del Web. Buenos días, tengo que realizar una consulta en MySQL que realmente me puso a pensar mucho y tal vez uds me puedan ayudar a destrabarme. ...
  #1 (permalink)  
Antiguo 10/08/2016, 07:27
 
Fecha de Ingreso: octubre-2005
Mensajes: 40
Antigüedad: 18 años, 6 meses
Puntos: 0
Pregunta Consulta SELECT a tabla de relacion

Buenos días, tengo que realizar una consulta en MySQL que realmente me puso a pensar mucho y tal vez uds me puedan ayudar a destrabarme.
Tengo dos tablas, clientes y tabla consumen.

clientes
Código:
+-----+-----------------------+
| idC | nombre                |
+-----+-----------------------+
|   1 | Super Norma           |
|   2 | Kiosco Pepe           |
|   3 | Bar Cholo             |
|   4 | Libertad Supermercado |
|   5 | Marcos Maxikiosco     |
|   6 | Pizeria Tana          |
+-----+-----------------------+
consumen
Código:
+-----+-----------+-----------+
| idP | clienteId | producto  |
+-----+-----------+-----------+
|   1 |         1 | Coca Cola |
|   2 |         1 | Pepsi     |
|   3 |         1 | Fanta     |
|   4 |         2 | Sprite    |
|   5 |         2 | Fanta     |
|   6 |         3 | Pepsi     |
|   7 |         4 | Coca Cola |
|   8 |         4 | Sprite    |
|   9 |         4 | Seven Up  |
|  10 |         5 | Fanta     |
|  11 |         5 | Sprite    |
|  12 |         6 | Coca Cola |
|  13 |         6 | Fanta     |
|  14 |         6 | Sprite    |
+-----+-----------+-----------+
En el formulario el campo "NO MOSTRAR clientes que consuman:" ej: Fanta
Lo que quiero hacer es entregarle un array o un string con limitadores y este me filtre por producto.

Código:
SELECT * FROM clientes, consumen WHERE producto NOT IN ('Fanta') AND idC=clienteId GROUP BY idC;
;
+-----+-----------------------+-----+-----------+-----------+
| idC | nombre                | idP | clienteId | producto  |
+-----+-----------------------+-----+-----------+-----------+
|   1 | Super Norma           |   1 |         1 | Coca Cola |
|   2 | Kiosco Pepe           |   4 |         2 | Sprite    |
|   3 | Bar Cholo             |   6 |         3 | Pepsi     |
|   4 | Libertad Supermercado |   7 |         4 | Coca Cola |
|   5 | Marcos Maxikiosco     |  11 |         5 | Sprite    |
|   6 | Pizeria Tana          |  12 |         6 | Coca Cola |
+-----+-----------------------+-----+-----------+-----------+
El problema es que "Pizeria Tana", "Marcos Maxikiosco", "Super Norma" y "Kiosco Pepe" SI consumen 'Fanta' y no quiero que me aparezcan.

Yo entiendo porque SI aparecen, por eso consulto si alguien sabría como resolver esto DESDE LA CONSULTA.

Muchas gracias por su tiempo!
  #2 (permalink)  
Antiguo 10/08/2016, 07:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta SELECT a tabla de relacion

En tu query estás excluyendo el PRODUCTO, y lo que tienes que hacer es excluir al CLIENTE si consume ese producto.
No es lo mismo...

Código MySQL:
Ver original
  1. FROM clientes  cl INNER JOIN consumen co ON CL.idc = CO.clienteId
  2. WHERE cl.clc NOT IN (SELECT clienteId FROM consumen WHERE producto = 'Fanta')
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/08/2016, 15:17
 
Fecha de Ingreso: octubre-2005
Mensajes: 40
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Consulta SELECT a tabla de relacion

Cita:
Iniciado por gnzsoloyo Ver Mensaje
En tu query estás excluyendo el PRODUCTO, y lo que tienes que hacer es excluir al CLIENTE si consume ese producto.
No es lo mismo...

Código MySQL:
Ver original
  1. FROM clientes  cl INNER JOIN consumen co ON CL.idc = CO.clienteId
  2. WHERE cl.clc NOT IN (SELECT clienteId FROM consumen WHERE producto = 'Fanta')
Muchisimas gracias, es la solucion!

Gracias por tu tiempo.

Etiquetas: campo, relacion, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:41.