TECH I.S.

Python MySQL参加


2つ以上のテーブルを結合する

JOINステートメントを使用して、テーブル間の関連列に基づいて、2つ以上のテーブルの行を結合できます。

"users"テーブルと"products"テーブルがあるとします。

ユーザー

{ id: 1, name: 'ジョン', fav: 154}, { id: 2, name: 'ピーター', fav: 154}, { id: 3, name: 'アミー', fav: 155}, { id: 4, name: 'ハナー', fav:}, { id: 5, name: 'マイケル', fav:}

製品

{ id: 154, name: 'チョコレートヘブン' }, { id: 155, name: 'テイスティーレモン' }, { id: 156, name: 'バニラドリーム' }

これら2つのテーブルは、ユーザーのfavフィールドと製品のidフィールドを使用して組み合わせることができます。

ユーザーと製品を結合すると、ユーザーのお気に入りの製品の名前が表示されます。

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)
実行例 »

注意:INNER JOINの代わりにJOINを使用できます。どちらも同じ結果になります。


LEFT JOIN

上記の例では、ハナーとマイケルが結果から除外されています。これは、INNER JOINが一致するレコードのみを表示するためです。

お気に入りの製品がない場合でも、すべてのユーザーを表示する場合は、LEFT JOINステートメントを使用します。

すべてのユーザーとそのお気に入りの製品を選択してください:

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

実行例 »


RIGHT JOIN

すべての製品と、その製品をお気に入りとして持っているユーザーを返す場合は、お気に入りとして持っているユーザーがいない場合でも、RIGHT JOINステートメントを使用します。

すべての製品と、それらをお気に入りとして持っているユーザーを選択します。

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

重要:お気に入りの商品がないハナーとマイケルは結果に含まれません。


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細