Занҷири ҷадвалҳои пайваст
Бигзор акнун корбарон дар шаҳрҳои муайян зиндагӣ мекунанд, ва ин шаҳрҳо дар кишварҳои гуногун ҷойгиранд. Дар ин ҳолат барои нигоҳдорӣ ба мо лозим меояд се ҷадвал: корбарон бо шаҳрҳо пайваст мешаванд, ва шаҳрҳо - бо кишварҳо. Дар ин ҳолат ба мо майдони пайвастии корбарон бо кишварҳо лозим нест - зеро ки корбарон ҳам бо кишварҳо тавассути пайвасти шаҳрҳо ва кишварҳо пайваст хоҳанд шуд.
Биёед ба ҷадвалҳои худ назар андозем. Ҷадвали бо кишварҳо:
| id | name |
|---|---|
| 1 | country1 |
| 2 | country2 |
Ҷадвали бо шаҳрҳо:
| id | name | country_id |
|---|---|---|
| 1 | city1 | 1 |
| 2 | city2 | 1 |
| 3 | city3 | 2 |
Ҷадвали бо корбарон бе тағйир боқӣ мемонад:
| id | name | city_id |
|---|---|---|
| 1 | user1 | 1 |
| 2 | user2 | 1 |
| 3 | user3 | 2 |
| 4 | user4 | 1 |
| 5 | user5 | 3 |
| 6 | user6 | 2 |
Дархостҳо
Барои он, ки корбаронро бо шаҳрҳо ва кишварҳои худ ба даст орем, бояд ду пайвасти JOIN (join) анҷом диҳем: якум шаҳрҳоро ба корбарон мусаллак мекунад, ва дуюм - кишварҳоро ба шаҳрҳо:
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
Масъалаҳои амалӣ
Бигзор маҳсулот ба зергурӯҳи муайян тааллуқ доранд, ва зергурӯҳҳо ба гурӯҳи муайян тааллуқ доранд. Сохти нигоҳдориро тарҳрезӣ кунед.
Дархостеро нависед, ки маҳсулотро, ҳамроҳ бо зергурӯҳҳо ва гурӯҳҳои онҳо ба даст орад.
Дархостеро нависед, ки зергурӯҳҳоро ҳамроҳ бо гурӯҳҳои онҳо ба даст орад.