entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Consulta en tabla MySQL

Saludos, tengo un problema con una consulta a la siguiente tabla en SQL que he simplificado para mejor comprensión:

         Viajes
  ______________________
  |id_viaje|id_pasajero|
  |1       |1          |
  |2       |2          |
  |3       |3          |
  |4       |4          |
  |5       |5          |
  |1       |2          |
  ______________________

Necesito hacer un SELECT que me devuelva solo aquellos id_viaje donde el id_pasajero no sea 1
La respuesta mas sencilla a esta premisa seria:

SELECT `id_viaje` FROM `viajes` WHERE `id_pasajero`!='1'

El problema esta en que esta sentencia me retornaría todos los id_viaje (del 1 al 5) puesto que el pasajero '2' aparece también en el viaje '1', y es esto lo que quiero evitar, en resumen, mi sentencia debería devolver esto:

     Viajes
  ______________________
  |id_viaje|id_pasajero|
  |2       |2          |
  |3       |3          |
  |4       |4          |
  |5       |5          |
  ______________________

Me despido a la espera de sus comentarios, gracias!

-Aclaración-
La razón de ser de la tabla es almacenar los múltiples pasajeros que puede tener un solo viaje.

1 Respuesta

3votos

Leonardo-Tadei Puntos227320

Hola @zgluis,

si no entiendo mal tu problema, esta query proyecta los datos que querés:

SELECT `id_viaje` 
FROM `ViajesPax` 
WHERE id_viaje NOT IN ( SELECT id_viaje FROM ViajesPax WHERE id_pasajero = 1 )

Serían todos los viajes en los cuales no viaje el pasajero = 1, independientemente de que viajen otros pasajerosn en él.

Saludos cordiales

PD: lo que no me doy cuenta es lo que decís al final, sobre que la tabla sirve para almacenar los múltiples pasajeros que pueden tener 1 solo viaje, porque para hacer eso, me imagino más bien un COUNT() sobre los pasajeros para ver cuales aparecen una sola vez.

2votos

zgluis comentado

Muchas gracias, era justo lo que necesitaba, llevaba todo el día programando y me trabé en ese punto, fue ideal el apoyo. La aclaración final era en caso de que alguien se preguntara por que la tabla no tenia una clave primaria o algo parecido, y era referente a la primera tabla, saludos y gracias de nuevo.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta