⊗pyPmDOGD 123 of 129 menu

Pythonにおける関連テーブルからのデータ取得

ユーザーとその都市をすべて取得するクエリを作成しましょう。これには、 LEFT JOINコマンドが必要です:

その構文は次のとおりです:

SELECT フィールド FROM テーブル名 LEFT JOIN 関連テーブル名 ON 結合条件 WHERE 選択条件

このコマンドの構文の各部分について見ていきましょう。

フィールド

複数のテーブルから選択を行うため、*によるすべてのフィールドの選択は機能しません。 次のクエリは、メインテーブルからのみフィールドを選択し、関連テーブルからのフィールドは選択しません:

SELECT *

すべてのテーブルからデータを選択するには、*の前に選択対象のテーブル名を指定する必要があります:

SELECT users.*, cities.*

または、必要なフィールドをテーブル名を指定して列挙することもできます:

SELECT users.name, cities.name

これらの2つの方法には問題があります。テーブル内のフィールド名が同じ場合、 Pythonの配列内で名前の競合が発生し、一方のフィールドのみが残り、もう一方は失われてしまうのです。

この問題を解決するには、競合する名前をasコマンドでリネームする必要があります:

SELECT users.name, cities.name as city_name

結合

ONコマンドの後には、2つのテーブル間の結合が行われるフィールドを指定する必要があります。 この場合、都市テーブルのidフィールドと、ユーザーテーブルのcity_idフィールドになります:

ON cities.id=users.city_id

クエリ

最終的に、ユーザーとその都市を取得するクエリは次のようになります:

SELECT users.name, cities.name as city_name FROM users LEFT JOIN cities ON cities.id=users.city_id

実践的な課題

商品テーブルとそのカテゴリーテーブルがあるとします。 商品名とそのカテゴリーを一緒に取得するクエリを作成してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否