объединение 3 таблиц

505
.
есть 3 таблицы
category c полями (cid,name)
sklad c полями (sid,data_s)
magazin c полями (mid,data_m)

надо вывести примерно так

Категория1
склад_а1 магазин_а1
склад_б1 магазин_б1

Категория2
склад_а2 магазин_а2
склад_б2

Категория3

Категория4
склад_а4
склад_б4 магазин_б4
склад_в4

Категория5

Категория6
склад_а6
склад_б6
.
Дядька Комполом
dilp, нужно добавить поля по которым таблицы (записи в таблицах будут объединяться)
.
sid и mid одинаковы и соответствуют сid
.
Дядька Комполом
dilp, примерный запрос
select * from category join sklad join mag on category.id = sklad.catid, sklad.id = mag.sklid
.
Дядька Комполом
Добавлено: 28.06.2017 / 00:40
dilp, тогда поля одинаковые в каждой таблице назови одним именем (id например)
select * from category join sklad join mag using(id)

Добавлено: 28.06.2017 / 00:41
но на самом деле надо выбирать таблицы в обратном порядке. то есть от магазина к складу и к кстегории
.
я обьединяю, но рисует по двадцать раз тоже самое ,потом двадцать раз другое, по двадцать раз третье,потом еще пару раз повторяет ту же скатерть
.
Дядька Комполом
dilp, тогда в поля указывай что нужно выбрать, то есть под запросы, но там сложнее, ну а чтобы лишнее не выбирало, уже звездочку меняем на список полей нужных
надо просто в пма залезть и полидеть часульку и родится норм варик
.
Compolomus
Дядька Комполом
Добавлено: 28.06.2017 / 00:46
# dilp (28.06.2017 / 00:43)
я обьединяю, но рисует по двадцать раз тоже самое ,потом двадцать раз другое, по двадцать раз третье,потом еще пару раз повторяет ту же скатерть
ну и еще есть такая штука как distinct и group by дубли уберет

Добавлено: 28.06.2017 / 00:56
еще вариант вспомнил
select * from category, sklad, mag
но медленее
.
Group помогло с дублями, но оказалось что выводит только половину списка
.
Дядька Комполом
dilp, ты в примере в ПП написал что не везде есть магазины, от этого результат не ожидаемый
Всего: 25