Mysql Помощь в построение запроса (один ко многим)

ГиенаКода

Новичок
Доброе время суток, коллеги.

Я редко работаю с SQL запросами, обычно хватает довольно рутинных запросов.

Но недавно столкнулся с такой задачей: мне нужно подсчитать, сколько всего символов в таблицах одним запросом.

Есть таблица продуктов data_main, в ней хранятся данные (в ней ID, производитель, модель, основной текст и т.д.).

Структура
`id` `manufac` `model' `title` `main_text`. PRIMARY KEY (`id`).

И есть еще одна таблица data_abyss, содержащая "особенности" этих продуктов. Структура
`key` `id` `title` `abyss_text`. PRIMARY KEY (`key`). id - номер продукта из таблицы data_main.


Проблема в том, что я хочу получить все текста одним запросом. Строк в таблице data_abyss может быть 10-20 на один id из data_main.

В результате запроса, я получаю все данные. Но на каждую строку из data_abyss у меня дублируется строка из data_main.


Подскажите выход из ситуации, спасибо.
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Зачем хотеть такого? Понимаю считать число товаров по категориям или какую-то статистику.

Выхода из ситуации "одним заросом" - нет.
 

С.

Продвинутый новичок
Подсказать выход куда? Ситуация штатная. Данные один ко многим выдаются именно так. Как иначе ты себе это представляешь?
 

ГиенаКода

Новичок
Зачем хотеть такого? Понимаю считать число товаров по категориям или какую-то статистику.

Выхода из ситуации "одним заросом" - нет.
Один запрос чаще лучше чем два три запроса, да и работать с данными проще, когда все в одном массиве. Просто я делал подобное с зарплатами и премиями, но там цифры и их можно было объединять агрегатными функциями и внешними запросами.

Подсказать выход куда? Ситуация штатная. Данные один ко многим выдаются именно так. Как иначе ты себе это представляешь?
Я могу конечно в коде удалить похожие текста из строк, но это не самый правильный путь.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
ГиенаКода

Нет, не чаще и не лучше. Если у тебя один запрос без индексов и с хреновым query plan, то я голосую за три запроса по PRIMARY KEY.
Работать с данными не проще, тебе просто лениво писать лишний код, ведь так?

Надо писать код нормально, сообразуясь с тем, что после тебя кто-то будет его поддерживать и он как правило твои личные взгляды может не разделять.
 

С.

Продвинутый новичок
Это реляционная база данных. Результат всегда будет выдаваться в виде матрицы, а не дерева, как ты желаешь.
Если сделать два запроса, то будет действительно экономнее с точки зрения перегона данных, да и вероятнее всего по эфекктивности работы базы.
 
Сверху