2011-05-09 10 views
6

Suponiendo que tenía 3 mesasMySQL innerjoin 3 mesas

  • de pasajeros (Id [pk], nombre)
  • Airplane (registro [pk], NUM_SEATS)
  • reserva (Id, passenger_id[FK -> Passenger.Id], airplane_registration[FK -> Airplane.registration])

La tabla de reserva sería un objeto de unión aquí ya que hay una relación de muchos a muchos entre las tablas Pasajero y Reserva.

¿Cómo podría seleccionar todos los detalles relacionados con un identificador de reserva en particular (por decir 'abcde')?

¿Es esto correcto:

SELECT Passenger.name, Airplane.num_seats, Booking.Id 
    FROM Booking 
    JOIN Passenger ON Passenger.Id = Booking.passenger_Id 
    JOIN Airplane ON Booking.airplane_registration = Airplane.registration 
WHERE Booking.Id = 'abcde'; 

Es esta la forma correcta de hacerlo? Además, si quisiera seleccionar todas las reservas y sus detalles, ¿lo haría de la misma manera? (Sin la cláusula where)?

que estaba buscando para averiguar si esto era correcto para una prueba como MySQL ha bajado en mi máquina.

+0

Hi OMG Ponies, ¿me equivoqué con el formateo? Si es así, ¿qué hice mal? Gracias – Joeblackdev

+1

Saludos (IE: Hola) y lugares comunes (IE: gracias) son un desperdicio de pantalla de bienes raíces (y si la calificación de aceptación es inferior al 50% - insultante). Trato de mejorar la legibilidad cuando puedo, es más probable que obtengas ayuda. –

Respuesta

1

Sí, su consulta funcionaría para obtener los detalles de los pasajeros y el vuelo para la identificación de la reserva en particular. Para obtener todas las reservas, agregaría un ID de reserva ORDENADO y, si es necesario, el nombre del pasajero y el registro del vuelo.

0

Sin conocer su esquema, no hay manera de estar seguro, pero eso se ve bien para mí.

+0

Hola. Disculpas por no aclarar. He actualizado mi publicación original. Como puede ver, la tabla de reservas contiene 2 claves externas. La primera hace referencia a la clave primaria 'Id' en la tabla Pasajero y la segunda hace referencia a la clave primaria 'registro' en la tabla Avión. – Joeblackdev