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

[SOLUCIONADO] consulta relacion muchos a muchos

Estas en el tema de consulta relacion muchos a muchos en el foro de Mysql en Foros del Web. Hola, tengo las siguentes tablas en mysql: Cliente(Dni,nombre,apellidos,...) Pertenece(dni,matricula) Coche(matricula,modelo,color,etc) Pues bien, lo que intento hacer es una consulta que haga esto: Dni 11111111 Coche ...
  #1 (permalink)  
Antiguo 12/11/2015, 10:09
 
Fecha de Ingreso: noviembre-2015
Ubicación: Elche
Mensajes: 3
Antigüedad: 8 años, 5 meses
Puntos: 0
consulta relacion muchos a muchos

Hola, tengo las siguentes tablas en mysql:

Cliente(Dni,nombre,apellidos,...)
Pertenece(dni,matricula)
Coche(matricula,modelo,color,etc)

Pues bien, lo que intento hacer es una consulta que haga esto:

Dni 11111111
Coche 1234
Coche 1321
Coche 8212

Dni 22222222
Coche 8273
Coche 1234
Coche 3212

etc...
tengo la siguente consulta hecha, pero por cada coche se repiten los dni

SELECT dni , nombre , ...
FROM cliente
LEFT JOIN pertenece ON cliente.dni = pertenece.dni
LEFT JOIN coche ON coche.matricula = pertenece.matricula ;

esto me muestra algo parecido, ya que tambien quiero saber los clientes que no tienen coche.

No se si me he explicado bien

Gracias de antemano
  #2 (permalink)  
Antiguo 12/11/2015, 10:25
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 relacion muchos a muchos

Cita:
tengo la siguente consulta hecha, pero por cada coche se repiten los dni
Es el comportamiento normal y esperado de un JOIN entre tablas que se relacionan con cardinalidad N.
Por cada Cliente, mostrará todos los campos de esa tabla que le indiques, una vez por cada relación con la segunda tabla, y estas relaciones, una vez por cada relacion válida que exista con la tercera.

Para no mostrar esos datos en la pantalla al usuario debes resolver esas repeticiones por programación. Para la base no existen repeticiones, en tanto al menos una columna mostrada en el SELECT contenga datos diferentes entre dos registros cualesquiera.

¿Se entiende?
__________________
¿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 12/11/2015, 10:29
 
Fecha de Ingreso: noviembre-2015
Ubicación: Elche
Mensajes: 3
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: consulta relacion muchos a muchos

Si, te entiendo, pero lo que queria evitar es hacer multiples consultas en el codigo y hacer solo una que devolviese los valores asi, pero veo que esto no se permite en SQL.

Gracias

Etiquetas: mysql+consulta
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 12:41.