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

791
.

есть 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