简体   繁体   中英

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM