
Gilberto Pérez Garrido
Pregunta¿Por qué la primera consulta no tiene nada la tabla viajes?, casi no me ayuda hacer preguntas aquí, pero de verdad quiero saber porqué.
Versión: PostgreSQL 14

Joel Sierra Mendoza
Considero que el código correcto es:
SELECT * FROM pasajeros LEFT JOIN viajes ON pasajeros.id = viajes.id_pasajeros;
La pregunta que me surge aquí es: A qué hrs iniciaron y finalizaron sus viajes los pasajeros?

Rene Rosas Villanueva
lo que hace tu codigo es traer todos los datos de la tabla pasajero y agregarles los datos correspondientes de la tabla viajes. en teoria estas imprimiendo toda la informacion de los pasajeros y los que tienen null son pasajeros que aun no viajan por eso te imprime null pero seguro mas abajo tienes pasajeros con los datos completos de sus viajes. Si quisieramos ser mas especificos podrias usar:
SELECT * FROM pasajero LEFT JOIN viaje ON (viaje.id_pasajero=pasajero.id) WHERE viaje.id_pasajero IS NULL ORDER BY pasajero.id
El codigo de arriba te imprimiria la informacion de los pasajeros que no han realizado viajes Y el codigo de abajo te imprimiria solo la informacion de los pasajeros que si realizaron viajes.
SELECT * FROM pasajero LEFT JOIN viaje ON (viaje.id_pasajero=pasajero.id) WHERE viaje.id_pasajero IS NOT NULL ORDER BY pasajero.id
o tambien lo mas correcto para ver solo los pasajeros que tienen viajes seria utilizar INNER JOIN
A mi me ayuda mucho estar viendo la representacion grafica de los joins para entender que es lo que esta haciendo mi codigo por eso siempre busco en google imagenes SQL Joins