0% found this document useful (0 votes)
37 views13 pages

SQL Vs Pythons

The document compares how to perform various types of joins in SQL and Python Pandas. It shows examples of inner, left, right, full, union, intersect, except, semi, anti, and cross joins displayed in tables and explains how to write the equivalent SQL and Pandas code to perform each type of join.

Uploaded by

Abhijeet Patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views13 pages

SQL Vs Pythons

The document compares how to perform various types of joins in SQL and Python Pandas. It shows examples of inner, left, right, full, union, intersect, except, semi, anti, and cross joins displayed in tables and explains how to write the equivalent SQL and Pandas code to perform each type of join.

Uploaded by

Abhijeet Patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

SQL Joins

v/s
Python Pandas
@vimanyuchaturvedi
INNER JOIN
LEFT_TABLE RIGHT_TABLE
ID LEFT_VALUE ID RIGHT_VALUE

1 LEFT 1 1 RIGHT 1 ID LEFT_VALUE RIGHT_VALUE

2 LEFT 2 4 RIGHT 2 1 LEFT 1 RIGHT 1

3 LEFT 3 5 RIGHT 3 4 LEFT 4 RIGHT 2

4 LEFT 4 6 RIGHT 4

SQL
SELECT * FROM LEFT_TABLE AS LT INNER JOIN RIGHT_TABLE AS RT
ON LT.ID = RT.ID

pandas
SELF JOIN
LEFT_TABLE LEFT_TABLE

ID LEFT_VALUE ID LEFT_VALUE

1 LEFT 1 1 LEFT 1

2 LEFT 2 2 LEFT 2

3 LEFT 3 3 LEFT 3

4 LEFT 4 4 LEFT 4

ID LEFT_VALUE LEFT_VALUE2

1 LEFT 1 LEFT 1

2 LEFT 2 LEFT 2

3 LEFT 3 LEFT 3

4 LEFT 4 LEFT 4

SQL
SELECT * FROM LEFT_TABLE AS LT INNER JOIN LEFT_TABLE AS LT2
ON LT.ID = LT2.ID

pandas
LEFT JOIN

LEFT_TABLE RIGHT_TABLE

ID LEFT_VALUE ID RIGHT_VALUE

1 LEFT 1 1 RIGHT 1

2 LEFT 2 4 RIGHT 2

3 LEFT 3 5 RIGHT 3

4 LEFT 4 6 RIGHT 4

ID LEFT_VALUE RIGHT_VALUE

1 LEFT 1 RIGHT 1

2 LEFT 2 NULL

3 LEFT 3 NULL

4 LEFT 4 RIGHT 2

SQL
SELECT * FROM LEFT_TABLE AS LT LEFT JOIN RIGHT_TABLE AS RT
ON LT.ID = RT.ID

pandas
RIGHT JOIN

LEFT_TABLE RIGHT_TABLE
ID LEFT_VALUE ID RIGHT_VALUE

1 LEFT 1 1 RIGHT 1

2 LEFT 2 4 RIGHT 2

3 LEFT 3 5 RIGHT 3

4 LEFT 4 6 RIGHT 4

ID LEFT_VALUE RIGHT_VALUE

1 LEFT 1 RIGHT 1

4 LEFT 4 RIGHT 2

5 NULL RIGHT 3

6 NULL RIGHT 4

SQL
SELECT * FROM LEFT_TABLE AS LT RIGHT JOIN RIGHT_TABLE AS RT
ON LT.ID = RT.ID

pandas
FULL JOIN
LEFT_TABLE RIGHT_TABLE
ID LEFT_VALUE ID RIGHT_VALUE

1 LEFT 1 1 RIGHT 1

2 LEFT 2 4 RIGHT 2

3 LEFT 3 5 RIGHT 3

4 LEFT 4 6 RIGHT 4

ID LEFT_VALUE RIGHT_VALUE

1 LEFT 1 RIGHT 1

2 LEFT 2 NULL

3 LEFT 3 NULL

4 LEFT 4 RIGHT 2

5 NULL RIGHT 3

6 NULL RIGHT 4

SQL
SELECT * FROM LEFT_TABLE AS LT FULL OUTER JOIN RIGHT_TABLE
AS RT ON LT.ID = RT.ID

pandas
UNION ALL
LEFT_TABLE RIGHT_TABLE
ID VALUE ID VALUE ID VALUE

1 VALUE 1 1 VALUE 1 1 VALUE 1

2 VALUE 2 4 VALUE 2 2 VALUE 2

3 VALUE 3 5 VALUE 3 3 VALUE 3

4 VALUE 4 6 VALUE 4 4 VALUE 4

1 VALUE 1

4 VALUE 2

5 VALUE 3

6 VALUE 4

SQL
SELECT * FROM LEFT_TABLE UNION ALL SELECT * FROM RIGHT_TABLE

pandas
UNION
LEFT_TABLE RIGHT_TABLE
ID VALUE ID VALUE

1 VALUE 1 1 VALUE 1

2 VALUE 2 4 VALUE 2

3 VALUE 3 5 VALUE 3

4 VALUE 4 6 VALUE 4

ID VALUE

1 VALUE 1

2 VALUE 2

3 VALUE 3

4 VALUE 4

4 VALUE 2

5 VALUE 3

6 VALUE 4

SQL
SELECT * FROM LEFT_TABLE UNION SELECT * FROM RIGHT_TABLE

pandas
INTERSECT
LEFT_TABLE RIGHT_TABLE

ID VALUE ID VALUE

1 VALUE 1 1 VALUE 1

2 VALUE 2 4 VALUE 2

3 VALUE 3 5 VALUE 3

4 VALUE 4 6 VALUE 4

ID VALUE

1 VALUE 1

SQL
SELECT * FROM LEFT_TABLE INTERSECT SELECT * FROM RIGHT_TABLE

pandas
EXCEPT
LEFT_TABLE RIGHT_TABLE

ID VALUE ID VALUE

1 VALUE 1 1 VALUE 1

2 VALUE 2 4 VALUE 2

3 VALUE 3 5 VALUE 3

4 VALUE 4 6 VALUE 4

ID VALUE

2 VALUE 2

3 VALUE 3

4 VALUE 4

SQL
SELECT * FROM LEFT_TABLE EXCEPT SELECT * FROM RIGHT_TABLE

pandas
SEMI JOIN
LEFT_TABLE RIGHT_TABLE

ID VALUE VALUE ID VALUE

VALUE 2 2 VALUE 2
1 VALUE 1
VALUE 3 3 VALUE 3
2 VALUE 2

3 VALUE 3

4 VALUE 4

SQL
SELECT * FROM LEFT_TABLE WHERE VALUE IN (SELECT VALUE FROM
RIGHT_TABLE )

pandas
ANTI JOIN
LEFT_TABLE RIGHT_TABLE
VALUE ID VALUE
ID VALUE

VALUE 2 1 VALUE 1
1 VALUE 1
VALUE 3 4 VALUE 4
2 VALUE 2

3 VALUE 3

4 VALUE 4

SQL
SELECT * FROM LEFT_TABLE WHERE VALUE NOT IN (SELECT VALUE
FROM RIGHT_TABLE )

pandas
CROSS JOIN

ID1 ID2
LEFT_TABLE RIGHT_TABLE
1 1
ID ID
1 2
1 1
2 1
2 2
2 2
3
3 1

3 2

SQL
SELECT * FROM LEFT_TABLE CROSS JOIN RIGHT_TABLE

pandas

You might also like