|
Вывод данных из 3 таблиц
|
|||
---|---|---|---|
#18+
Добрый вечер! Помогите разобраться, пожалуйста. в следующем вопросе: Есть 3 таблицы в БД 1. tb_orders id, client_id, order_data, order_manager, order_status 2. tb_clients id, client_company 3. tb_items id, client_id, order_id, item_name Мне необходимо получить одну таблицу с заказами следующего вида: tb_orders.id , tb_clients.client_company , tb_items.item_name , tb_orders.order_data , tb_orders.order_manager , tb_orders.order_status Вот таким запросом получилось вывести все кроме : tb_items.item_name "SELECT tb_orders.id, tb_clients.client_company, tb_orders.order_data, tb_orders.order_manager, tb_orders.order_status, tb_orders.client_id FROM tb_orders INNER JOIN tb_clients ON tb_orders.client_id=tb_clients.id ORDER BY id DESC"; tb_orders.id , tb_clients.client_company , tb_items.item_name , tb_orders.order_data , tb_orders.order_manager , tb_orders.order_status Каким образом добавить вывод tb_items.item_name ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 22:49 |
|
Вывод данных из 3 таблиц
|
|||
---|---|---|---|
#18+
yaneznay Есть 3 таблицы в БД yaneznay Помогите разобраться, пожалуйста. в следующем вопросе ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 22:55 |
|
Вывод данных из 3 таблиц
|
|||
---|---|---|---|
#18+
miksoft, Не понял как все картинки добавить, расписал более подробно в описании, на картинку не обращайте внимания )) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 22:57 |
|
Вывод данных из 3 таблиц
|
|||
---|---|---|---|
#18+
Вот так должно в итоге получиться ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 23:04 |
|
Вывод данных из 3 таблиц
|
|||
---|---|---|---|
#18+
yaneznay, Именно так, как нарисовано в целевой таблице, SQL не умеет в принципе. Тут возможны варианты: 1) Во всех полях, кроме item_name будут продублированы значения, в результате 5 записей. 2) В поле item_name будет несколько значений через разделитель. В результате 2 записи. 3) Как-то еще. Выбор зависит от того, как умеет отображать данные тот инструмент, которым строится отчет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 23:24 |
|
Вывод данных из 3 таблиц
|
|||
---|---|---|---|
#18+
В tb_items я записываю позиции, которые добавляю в определенный заказ. Когда программа была совсем маленькой, у меня получалось выводить из двух таблиц. То есть допустим: Заказ №1, в нем добавлены 3 наименования товара. Я выводил так: Номер заказа | Позиции заказа 1 - товар 1 - товар 2 - товар 3 2 - товар 1 - товар 2 Потом насмотрелся про нормализации БД, и переделал таблицы (добавил новые и тд) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 23:34 |
|
Вывод данных из 3 таблиц
|
|||
---|---|---|---|
#18+
yaneznay Есть 3 таблицы в БД Итоговая связь таблиц, если удалить указанное поле, будет выглядеть так: Код: sql 1. 2. 3.
Для получения показанного результата, в котором итемы собраны в одном поле одной записи, придётся группировать по всем остальным полям. Это будет выглядеть так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Для того, чтобы в поле order_item_names добавить ещё и порядковые номера - их придётся сперва получить. В версии 8+ это легко делается функцией ROW_NUMBER() в CTE, на 5.x версии придётся геморроиться с переменными или с двумя копиями таблиц в подзапросе. Если очень надо - развлекайся, мне лень. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 07:35 |
|
Вывод данных из 3 таблиц
|
|||
---|---|---|---|
#18+
Akina, Спасибо за подробный ответ! И итемах я держу client_id, чтобы возвращаться со страницы создания итема на страницу заказа (а на ней же сбоку выводится инфо о текущем клиенте, к которому этот заказ относится )))) ) Вот так все запутано))) Но я понял, что мне проще добавление итема сделать через модальное окно и убрать страницу создания... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2020, 12:23 |
|
|
start [/forum/topic.php?fid=47&fpage=19&tid=1828495]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 272ms |
total: | 409ms |
0 / 0 |