bovkun
Новичок
Как при запросе по нескольким таблицам получить 1 результат сразу
TABLE 1
magazin_name | gorod_id | rayon_id
--------------------------------------
Имя_1 | 1 | 2
Имя_2 | 1 | 3
Имя_3 | 1 | 2
Имя_4 | 2 | 1
TABLE 2
gorod_id | gorod_name
--------------------------------------
1 | Город_1
2 | Город_2
TABLE 3
gorod_id | rayon_id | rayon_name
--------------------------------------
1 | 1 | Район_1_1
1 | 2 | Район_1_2
1 | 3 | Район_1_3
2 | 1 | Район_2_1
2 | 2 | Район_2_2
2 | 3 | Район_2_3
НУЖЕН РЕЗУЛЬТАТ ВЫБОРКИ
magazin_name | gorod_name | rayon_name
--------------------------------------
Имя_1 | Город_1 | Район_1_2
Имя_2 | Город_1 | Район_1_3
Имя_3 | Город_1 | Район_1_2
Имя_4 | Город_2 | Район_2_1
Я сейчас получаю желаемую картину, но в результате многочисленных запросов. Сначала делаю SELECT по таблице 1, а потом по каждой позиции (город и район) еще по разу прохожу чтобы подставить их наименование. Записей за раз нужно обрабатывать сотнями и полей больше чем в этом примере... Понимаю, что так можно, но вижу, что это как-то не рационально!
Вопрос. Можно (нужно) ли все это объединить в один запрос?
Я перебрал кучу вариантов с JOIN, но все не то. Появляются дубликаты с путаницей в колонках в разных вариация :/
Пример мучений:
TABLE 1
magazin_name | gorod_id | rayon_id
--------------------------------------
Имя_1 | 1 | 2
Имя_2 | 1 | 3
Имя_3 | 1 | 2
Имя_4 | 2 | 1
TABLE 2
gorod_id | gorod_name
--------------------------------------
1 | Город_1
2 | Город_2
TABLE 3
gorod_id | rayon_id | rayon_name
--------------------------------------
1 | 1 | Район_1_1
1 | 2 | Район_1_2
1 | 3 | Район_1_3
2 | 1 | Район_2_1
2 | 2 | Район_2_2
2 | 3 | Район_2_3
НУЖЕН РЕЗУЛЬТАТ ВЫБОРКИ
magazin_name | gorod_name | rayon_name
--------------------------------------
Имя_1 | Город_1 | Район_1_2
Имя_2 | Город_1 | Район_1_3
Имя_3 | Город_1 | Район_1_2
Имя_4 | Город_2 | Район_2_1
Я сейчас получаю желаемую картину, но в результате многочисленных запросов. Сначала делаю SELECT по таблице 1, а потом по каждой позиции (город и район) еще по разу прохожу чтобы подставить их наименование. Записей за раз нужно обрабатывать сотнями и полей больше чем в этом примере... Понимаю, что так можно, но вижу, что это как-то не рационально!
Вопрос. Можно (нужно) ли все это объединить в один запрос?
Я перебрал кучу вариантов с JOIN, но все не то. Появляются дубликаты с путаницей в колонках в разных вариация :/
Пример мучений:
Код:
SELECT
t1.magazin_name,
t2.gorod_name,
t3.rayon_name
FROM
t1
INNER JOIN t2
ON (t1.gorod_id = t2.gorod_id)
INNER JOIN t3
ON (t1.rayon_id = t3.rayon_id);