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.


Подскажите выход из ситуации, спасибо.
 
Последнее редактирование:
Зачем хотеть такого? Понимаю считать число товаров по категориям или какую-то статистику.

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

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

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

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

Я могу конечно в коде удалить похожие текста из строк, но это не самый правильный путь.
 
ГиенаКода

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

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