Skip to main content
Share / Export

Understanding SQL Joins

Getting Started​

When joining tables you must choose a Join Type, which determines how records from each table are combined and what data appears in the final result.

Imagine you have two tables.

  • AVPM - AP Vendors
    • Contains a list of vendors and the state they are located in.
  • HQST - HQ States
    • Contains a list of states.
AP Vendors Table
VendorNameState
1ABC SuppliesTX
2XYZ TradersCA
3Fast MoversFL
4Prime GoodsNULL
HQ States Table
StateDescription
TXTexas
CACalifornia
FLFlorida
NYNew York

Inner Join​

An INNER JOIN returns only the rows where there is a match in both tables.

SELECT *
FROM APVM Vendors
INNER JOIN HQST States ON Vendors.State=States.State
Results
Vendor NameState Name
ABC SuppliesTexas
XYZ TradersCalifornia
Fast MoversFlorida
  • Prime Goods is missing because it doesn’t have a StateID (NULL).
  • New York is missing because no vendor is located there.

Left Outer Join​

A LEFT OUTER JOIN returns all records from the left table (Vendors), plus matching records from the right table (States). If there’s no match, it fills with NULL.

SELECT *
FROM APVM Vendors
LEFT OUTER JOIN HQST States ON Vendors.State=States.State
Results
Vendor NameState Name
ABC SuppliesTexas
XYZ TradersCalifornia
Fast MoversFlorida
Prime GoodsNULL
  • Prime Goods is included, but its state is NULL.
  • New York is still missing because no vendor is located there.

Right Outer Join​

A RIGHT JOIN returns all records from the right table (States), plus matching records from the left table (Vendors). If there’s no match, it fills with NULL.

SELECT *
FROM APVM Vendors
RIGHT OUTER JOIN HQST States ON Vendors.State=States.State
Results
Vendor NameState Name
ABC SuppliesTexas
XYZ TradersCalifornia
Fast MoversFlorida
NULLNew York
  • New York appears, but with NULL because no vendor is located there.
  • Prime Goods is missing because RIGHT JOIN focuses on all states, and Prime Goods has no state assigned.

Full Outer Join​

A FULL JOIN returns all records from both tables, with NULLs where there is no match.

SELECT *
FROM APVM Vendors
FULL OUTER JOIN HQST States ON Vendors.State=States.State
Results
Vendor NameState Name
ABC SuppliesTexas
XYZ TradersCalifornia
Fast MoversFlorida
Prime GoodsNULL
NULLNew York
  • Prime Goods is included with NULL because it has no state assigned.
  • New York is included with NULL because it has no vendors.

Summary Table​

Join TypeIncludes Vendors with No State?Includes States with No Vendors?
INNER JOIN❌ No❌ No
LEFT OUTER JOIN✅ Yes❌ No
RIGHT OUTER JOIN❌ No✅ Yes
FULL OUTER JOIN✅ Yes✅ Yes

When to Use Each Join​

  • INNER JOIN → When you only need records that match in both tables.
  • LEFT JOIN → When you need all vendors, even if they don’t have a state.
  • RIGHT JOIN → When you need all states, even if they don’t have vendors.
  • FULL JOIN → When you need all vendors and states, even if there is no match.