Please note, this is a STATIC archive of website www.w3resource.com from 19 Jul 2022, cach3.com does not collect or store any user information, there is no "phishing" involved.
w3resource

SQL join a table to itself

Join a table to itself

A SELF JOIN is another type of join in SQL which is used to join a table to itself, especially when the table has a FOREIGN KEY which references its own PRIMARY KEY.

In this join, the participating table appears twice after the FROM clause and is followed by aliases for the tables that qualify column names in the join condition

In this join, those rows are returned from the table which are satisfying the conditions.

Example:

Sample table: company


To get 'company_name' and 'company_city' from 'company' table which is entitled as alias 'a' and 'company_name' form 'company' table which is entitled as alias 'b' after an SELF JOINING with a table itself, the following SQL statement can be used:

SQL Code:

SELECT a.company_name,b.company_name,a.company_city
FROM company a, company b
WHERE a.company_city=b.company_city;

Output:

COMPANY_NAME              COMPANY_NAME              COMPANY_CITY
------------------------- ------------------------- -------------
Order All                 Order All                 Boston
Foodies.                  Jack Hill Ltd             London
Jack Hill Ltd             Jack Hill Ltd             London
Akas Foods                Akas Foods                Delhi
Foodies.                  Foodies.                  London
Jack Hill Ltd             Foodies.                  London
sip-n-Bite.               sip-n-Bite.               New York

Explanation:

This is a note for the example:
'a' and 'b' are aliases for the table 'company'.
the a.company_city=b.company_city excludes all pairs containing companies of different cities.

See our Model Database

Here is a new document which is a collection of questions with short and simple answers, useful for learning SQL as well as for interviews.

Practice SQL Exercises

Want to improve the above article? Contribute your Notes/Comments/Examples through Disqus.

Previous: SQL FULL OUTER JOIN
Next: SQL SELF JOIN



SQL: Tips of the Day

SQL Server SELECT into existing table.

INSERT INTO dbo.TABLETWO
SELECT col1, col2
  FROM dbo.TABLEONE
 WHERE col3 LIKE @search_key

This assumes there's only two columns in dbo.TABLETWO - you need to specify the columns otherwise:

INSERT INTO dbo.TABLETWO
  (col1, col2)
SELECT col1, col2
  FROM dbo.TABLEONE
 WHERE col3 LIKE @search_key

Database: SQL Server

Ref: https://bit.ly/3y6tpA3