powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Соединить 4 таблицы
6 сообщений из 6, страница 1 из 1
Соединить 4 таблицы
    #38739588
Evgeniy57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сразу прошу прощения, если создал тему не в том разделе, это моя первая тема.

Итак, имеется 4 таблицы A B C D.
Структура таблиц (упрощенная):

Таблица A:
id | c_id | d_id

Таблица B:
id

Таблица C:
id | value

Таблица D:
id | value

Нужно получить список записей из таблицы B, предварительно связавшись с таблицей A для того, что бы узнать ключи для соединения с таблицами C и D.

Вроде бы ничего сложного, но проблема в том, что в таблицах C и D может быть несколько записей, которые нужно от туда достать и вывести все это.
Из одной таблицы мне нужно достать одно поле, из другой два. То есть конечный результат запроса к таблице B должен быть примерно таким:
id | c_result | d_result
1 | {#1}, {#2}| {#1 #1.1}, {#2 #2.1}

То есть: в c_result я таким образом показал, что мы нашли в таблице C две нужных записи и, получив нужные поля, вывели их значения через запятую. В таблице D из двух полей.

Может я что-то в корне делаю не так и через sql пытаться это сделать лишний гемор.
Буду очень признателен, если подскажите другой способ или поможете добить этот.
...
Рейтинг: 0 / 0
Соединить 4 таблицы
    #38739635
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgeniy57,

ну что-то понятно, что-то непонятно...
есть два способа продолжить обсуждения :

1. вы рассказываете ЧТО вы хотите сделать....
не КАК а ЧТО, логическая задача какая?

2. вы даете пример исходных данных (3-5-7 записей
в каждой таблице) и ожидаемый результат.
...
Рейтинг: 0 / 0
Соединить 4 таблицы
    #38739674
Evgeniy57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javajdbc,

Первый способ не очень понял, что вы требуйте, ведь я уже попытался это объяснить, так что попробую второй способ.

table A
id | c_id | d_id
1 | 1 | 1
2 | 2 | 2

table B
id | a_id
1 | 1
2 | 2

table С
id | value | key
1 | c1 | 1
2 | c2 | 1
3 | c3 | 2

table D
id | value | value2 | key
1 | d1 | d 1.1 | 1
2 | d2 | d 2.1 | 2
3 | d3 | d 3.1 | 2

view (from table B)
id | value_c | value_d
1 | c1, c2 | d1 d 1.1
2 | c1 | d2 d 2.1, d3 d3.1

Немного дополнил таблицы, которые вчера описывал, вчера уставший видимо забыл до конца правильно (как они есть) составить их.
...
Рейтинг: 0 / 0
Соединить 4 таблицы
    #38739702
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgeniy57,

Код: sql
1.
2.
3.
4.
select id, c_result, d_result
from (select a.id as id from b join a on b.a_id = a.id) t1
    natural join (select a.id as id, group_concat(c.id, separator ', ') as c_result from a join c on a.c_id = c.id) t2
    natural join (select a.id as id, group_concat(d.id, separator ', ') as d_result from a join d on a.d_id = c.id) t3
...
Рейтинг: 0 / 0
Соединить 4 таблицы
    #38739704
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixEvgeniy57,

Код: sql
1.
2.
3.
4.
select id, c_result, d_result
from (select a.id as id from b join a on b.a_id = a.id) t1
    natural join (select a.id as id, group_concat(c.id, separator ', ') as c_result from a join c on a.c_id = c.id) t2
    natural join (select a.id as id, group_concat(d.id, separator ', ') as d_result from a join d on a.d_id = c.id) t3



забыл группировку объявить
вот так правильно

Код: sql
1.
2.
3.
4.
select id, c_result, d_result
from (select a.id as id from b join a on b.a_id = a.id) t1
    natural join (select a.id as id, group_concat(c.id, separator ', ') as c_result from a join c on a.c_id = c.id group by 1) t2
    natural join (select a.id as id, group_concat(d.id, separator ', ') as d_result from a join d on a.d_id = c.id group by 1) t3
...
Рейтинг: 0 / 0
Соединить 4 таблицы
    #38740138
Evgeniy57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lumix,

Спасибо! То, что нужно.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Соединить 4 таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]