⊗pyPmDOChLT 124 of 129 menu

Pythonにおける関連テーブルの連鎖

ここで、ユーザーが特定の都市に住み、それらの都市が異なる国にあるとします。この場合、データを保存するには3つのテーブルが必要になります。ユーザーは都市と関連付けられ、都市は国と関連付けられます。ユーザーと国を直接関連付けるフィールドは必要ありません。なぜなら、ユーザーは都市と国の関連を通じて既に国と関連付けられているからです。

テーブルを見てみましょう。国を表すテーブル:

countries
id name
1 country1
2 country2

都市を表すテーブル:

cities
id name country_id
1 city1 1
2 city2 1
3 city3 2

ユーザーを表すテーブルは変更なし:

users
id name city_id
1 user1 1
2 user2 1
3 user3 2
4 user4 1
5 user5 3
6 user6 2

クエリ

ユーザーとその都市、国を一緒に取得するには、2つのJOINを行う必要があります。1つ目は都市をユーザーに結合し、2つ目は国を都市に結合します:

SELECT users.name, cities.name as city_name, countries.name as country_name FROM users LEFT JOIN cities ON cities.id=users.city_id LEFT JOIN countries ON countries.id=cities.country_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
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否