bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/Python/Databases in Python
Python•Databases in Python

Python MySQL Join

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind Python MySQL Join?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

{ id: 1, ___: 'John', fav: 154},
3Order

Put the learning moves in the order that makes the concept easiest to apply.

Consider you have a "users" table and a "products" table:
You can combine rows from two or more tables, based on a related column between them, by using a JOIN statement.
Join Two or More Tables

Join Two or More Tables

You can combine rows from two or more tables, based on a related column between them, by using a JOIN statement.

Consider you have a "users" table and a "products" table:

users

{ id: 1, name: 'John', fav: 154},
{ id:
 2, name: 'Peter', fav: 154},
 { id: 3, name: 'Amy', fav: 155},
 { id: 4, name: 'Hannah', fav:},
 { id: 5, name: 'Michael', fav:}

products

{ id: 154, name:
 'Chocolate Heaven' },
 { id: 155, name: 'Tasty Lemons' },
 {
 id: 156, name: 'Vanilla Dreams' }

These two tables can be combined by using users' fav field and products' id field.

Example

Join users and products to see the name of the users favorite product:

import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="
yourusername
",
password="
yourpassword
",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT \
users.name AS user,
\
products.name AS favorite \
FROM users \
INNER JOIN
products ON users.fav = products.id"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
 print(x)

Note

You can use JOIN instead of INNER JOIN. They will both give you the same result.

Left Join

In the example above, Hannah, and Michael were excluded from the result, that is because INNER JOIN only shows the records where there is a match.

If you want to show all users, even if they do not have a favorite product, use the LEFT JOIN statement:

Example

Select all users and their favorite product:

sql = "SELECT \
users.name AS user,
\
products.name AS favorite \
FROM users \
LEFT JOIN
products ON users.fav = products.id"

Right Join

If you want to return all products, and the users who have them as their favorite, even if no user have them as their favorite, use the RIGHT JOIN statement:

Example

Select all products, and the user(s) who have them as their favorite:

sql = "SELECT \
users.name AS user,
\
products.name AS favorite \
FROM users \
RIGHT JOIN
products ON users.fav = products.id"

Note

Hannah and Michael, who have no favorite product, are not included in the result.

Previous

Python MongoDB Limit

Next chapter

Reference and Practice

Start with Python Built in Functions