What is a LEFT JOIN in PostgreSQL
I've seen a query using a LEFT JOIN as opposed to an INNER or LEFT OUTER.
What is a LEFT JOIN exactly?
Where an inner join returns only entries that match in both tables, a left join takes all the entries from first table and any that match in the second table. A right join is the reverse of a left join (ie: all from the second table)
So if TableA is
A B 1 a 2 b 3 c
and TableB is
A B 1 d 2 e
Then Select * from TableA inner join TableB on TableA.A = TableB.A returns
1 a 1 d 2 b 2 e
And Select * from TableA left join TableB on TableA.A = TableB.A returns
1 a 1 d 2 b 2 e 3 c null null
It is the same as LEFT OUTER (The OUTER is implied because an INNER JOIN requires bilateral matching so a LEFT INNER JOIN would make no sense). The same applies for RIGHT JOIN and FULL JOIN these are equivalent to RIGHT OUTER JOIN and FULL OUTER JOIN respectively