Chuỗi bảng liên kết trong Python

Bây giờ, giả sử người dùng sống ở các thành phố cụ thể, và các thành phố này nằm ở các quốc gia khác nhau. Trong trường hợp này, để lưu trữ chúng ta sẽ cần đến ba bảng: người dùng sẽ được liên kết với các thành phố, và các thành phố liên kết với các quốc gia. Chúng ta không cần trường liên kết trực tiếp giữa người dùng và quốc gia - bởi vì người dùng đã sẽ được liên kết với quốc gia thông qua mối liên kết giữa thành phố và quốc gia.

Hãy xem các bảng của chúng ta. Bảng các quốc gia:

countries
id name
1 country1
2 country2

Bảng các thành phố:

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

Bảng người dùng sẽ giữ nguyên:

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

Truy vấn

Để lấy thông tin người dùng cùng với thành phố và quốc gia của họ, chúng ta phải thực hiện hai phép nối (join): phép thứ nhất sẽ nối thành phố vào người dùng, và phép thứ hai - nối quốc gia vào thành phố:

sqlSELECT
  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

Bài tập thực hành

Задание 1

Giả sử sản phẩm thuộc về một danh mục con cụ thể, và các danh mục con thuộc về một danh mục chính cụ thể. Hãy mô tả cấu trúc lưu trữ.

Задание 2

Viết truy vấn để lấy các sản phẩm, cùng với danh mục con và danh mục chính của chúng.

Задание 3

Viết truy vấn để lấy các danh mục con cùng với danh mục chính của chúng.