Rantaian Jadual Berkaitan
Sekarang katakan pengguna tinggal di bandar-bandar tertentu, dan bandar-bandar ini terletak di negara yang berbeza. Dalam kes ini, untuk penyimpanan kita akan memerlukan tiga jadual: pengguna akan dikaitkan dengan bandar, dan bandar - dengan negara. Pada masa yang sama, kita tidak perlukan medan yang menghubungkan pengguna dengan negara - kerana pengguna sudah pun dikaitkan dengan negara melalui perkaitan 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-sama dengan bandar dan negara mereka, kita perlu melakukan dua sambungan: yang pertama akan menyambung 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-sama dengan subkategori dan kategori mereka.
Tulis pertanyaan yang akan mendapatkan subkategori bersama-sama dengan kategori mereka.