Rantaian Jadual Berkaitan dalam Python
Katakan sekarang pengguna tinggal di bandar-bandar tertentu, dan bandar-bandar ini terletak di negara yang berbeza. Dalam kes ini, kita memerlukan tiga jadual untuk penyimpanan: pengguna akan dikaitkan dengan bandar, dan bandar akan dikaitkan dengan negara. Kita tidak memerlukan medan yang mengaitkan pengguna dengan negara - kerana pengguna sudah akan dikaitkan dengan negara melalui hubungan antara bandar dan negara.
Mari kita lihat jadual-jadual kita. Jadual negara:
| id | name |
|---|---|
| 1 | country1 |
| 2 | country2 |
Jadual bandar:
| id | name | country_id |
|---|---|---|
| 1 | city1 | 1 |
| 2 | city2 | 1 |
| 3 | city3 | 2 |
Jadual pengguna akan kekal tidak berubah:
| id | name | city_id |
|---|---|---|
| 1 | user1 | 1 |
| 2 | user2 | 1 |
| 3 | user3 | 2 |
| 4 | user4 | 1 |
| 5 | user5 | 3 |
| 6 | user6 | 2 |
Pertanyaan
Untuk mendapatkan pengguna bersama dengan bandar dan negara mereka, kita perlu melakukan dua sambungan: yang pertama akan menyambungkan bandar kepada pengguna, dan yang kedua - negara kepada bandar:
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
Tugas Praktikal
Katakan produk tergolong dalam subkategori tertentu, dan subkategori tergolong dalam kategori tertentu. Terangkan struktur penyimpanan.
Tulis pertanyaan yang akan mendapatkan produk, bersama dengan subkategori dan kategori mereka.
Tulis pertanyaan yang akan mendapatkan subkategori bersama dengan kategori mereka.