Home > Blockchain >  Trying make join to get data about people flying on Mars
Trying make join to get data about people flying on Mars

Time:12-23

Trying make join to get data about people flying on Mars

I'm having studying database, which contains information about different flights on spaceships. I will provide you with my database for better understanding.My datalogical model

The task is - find the amount of people that flew to a certain point on a certain ship. I do it with the code shown below:

select ship.shipname, destination.name as destination_name, count(person_id)
from person
        join flight_person on flight_person.PERSON_ID = person.ID
        join flight on flight.id = flight_person.flight_id
        join ship on flight.ship_id = ship.id
        join destination on flight.destination_id = destination.id
group by ship.shipname, destination.name;

The output is next:

shipname destination_name count
WhiteForest Mars 1
YarikLightSpeed Earth 1
YarikLightSpeed Mars 2

But the problem is, that I want to get information about points and destinations that I didn’t visit, how can I modify my query to get this data. In my case with is destination Neptune and snip FirePower

CodePudding user response:

Probably, what you're looking for is called "FULL JOIN". In this case, you'll get an output, which contains all information about all ships and all planets. Consider following example:

select ship.shipname, destination.name as destination_name, count(person_id)
from person
    join flight_person on flight_person.PERSON_ID = person.ID
    join flight on flight.id = flight_person.flight_id
    full join ship on flight.ship_id = ship.id
    full join destination on flight.destination_id = destination.id
group by ship.shipname, destination.name;
shipname destination_name count
null Neptune 0
FirePower null 0
WhiteForest Mars 1
YarikLightSpeed Earth 1
YarikLightSpeed Mars 2
  • Related