powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из нескольких таблиц mysql
8 сообщений из 8, страница 1 из 1
Выборка из нескольких таблиц mysql
    #38744669
php_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет форумчане.
Помогите составить оптимальный запрос в бд. Хотелось бы 1 запросом, но опыта мало. Специально зарегался на форуме, так как пару дней не могу сделать.

1. Economy
1.1 name1
- model1
1.2 name2
- model2
- model3
2. Standart
2.1 name3
- model4
- model5
и тд.

1) categories.

id title
--------------
0 Economy
1 Standart
2 Premium

2) products.

id cat_id product
----------------------
0 0 name1
1 0 name2
2 1 name3
3 2 name4
4 2 name5

3) models.

id prod_id model
----------------------
0 0 model1
1 1 model2
2 1 model3
3 2 model4
4 2 model5
5 3 model6
6 4 model7
...
Рейтинг: 0 / 0
Выборка из нескольких таблиц mysql
    #38744672
php_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть имеется ввиду просто вывести 3 таблицы в виде каталога.
...
Рейтинг: 0 / 0
Выборка из нескольких таблиц mysql
    #38745083
vitz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Должно быть вам сюда .
...
Рейтинг: 0 / 0
Выборка из нескольких таблиц mysql
    #38745181
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я знаю мускул не умеет деревья строить. Оракл умеет.
...
Рейтинг: 0 / 0
Выборка из нескольких таблиц mysql
    #38745184
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут 2 джоина, а в пыхе уже придется формировать дерево на основе общей выборки.

Модератор: Тема перенесена из форума "PHP, Perl, Python".
...
Рейтинг: 0 / 0
Выборка из нескольких таблиц mysql
    #38745302
php_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне не вывод нужен, а просто правильный запрос, чтобы получить данные, а дерево сделаю при помощи php.
В общем у меня получается нечто такое, укажите ошибки или более оптимизированный вариант:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$sql = mysql_query(
	"SELECT 
	c.title,
	GROUP_CONCAT(DISTINCT p.products) AS products,
	GROUP_CONCAT(m.model) AS models
	FROM `categories` c
	INNER JOIN `products` p
	INNER JOIN `models` m
	ON c.id = p.cat_id AND p.id = m.prod_id
	GROUP BY c.id;"
) or die("Запрос не выполнен!");



В итоге я получаю нечто вроде:
- Economy
name1, name2
model1, model2, model3
- Standart
...
После чего вывожу дерево. Вообще это адекватный запрос к бд? Или лучше сделать 2 запросами?
...
Рейтинг: 0 / 0
Выборка из нескольких таблиц mysql
    #38745328
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделайте одну выборку "денормализованную" и при проходе по строкам проверяйте, меняется ли категория и продукт.

Не менее рабочий вариант - идти по категориям, потом по продуктам. Ну и пусть 100 запросов вместо одного. Не заметит никто, кэширование рулит.
...
Рейтинг: 0 / 0
Выборка из нескольких таблиц mysql
    #38745337
php_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ.
DogenСделайте одну выборку "денормализованную" и при проходе по строкам проверяйте, меняется ли категория и продукт
Можете подробнее этот вариант пояснить, не совсем понимаю, что такое "денормализованная" выборка. 2-й вариант понятен, но меня смущает кол-во запросов к бд за 1 раз. Или это нормальная практика?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из нескольких таблиц mysql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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