powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Может или не может MySQL делать сложную выборку из нескольких таблиц?
11 сообщений из 11, страница 1 из 1
Может или не может MySQL делать сложную выборку из нескольких таблиц?
    #38868480
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.
Помогите решить спор. Проект создаем на laravel4, но собственно суть ни в этом.
Есть некая база со следующими таблицами:

(таблица categories)
id | name
1 | Жесткие диски
2 | Аккумуляторы

(таблица protucts)
id | category_id | name | price
1 | 1 | WD | 100
2 | 1 | Sams | 200
3 | 2 | Super| 20

(таблица attributes)
id | category_id | name
1 | 1 | Объём
2 | 1 | Тип
3 | 1 | Скорость
4 | 2 | Ёмкость
5 | 2 | Тип

(таблица protuct_attributes)
id | protuct_id | attribute_id | value
1 | 1 | 1 | 1Tb
2 | 1 | 2 | sata II
3 | 1 | 3 | 7 200
4 | 2 | 1 | 2Tb
5 | 2 | 2 | sata III
6 | 2 | 3 | 10 000
7 | 3 | 4 | 2800
8 | 4 | 5 | AA

Т.е. есть таблица с товарами protucts и в ней есть атрибут price , собственно по нему можно отсортировать некий товар по диапазону цен.
А вот стальные атрибуты хранятся в таблице protuct_attributes .
Задача стоит отсортировать в одном запросе товар не только по диапазону цен, но и по остальным атрибутам - скажем по "Объём" если это жесткий диск.
Мне сказали, что MySQL в принципе на подобное не способен.
Так ли это?
...
Рейтинг: 0 / 0
Может или не может MySQL делать сложную выборку из нескольких таблиц?
    #38868525
HunterNomad,
отсортировать или отфильтровать?
словесное описание задачи сильно хромает. лучше бы привел тестовый набор данных, входные параметры поиска товара и желаемый результат на всём этом...


но в целом, не думаю, что задача настолько уж нерешаемая в рамках MySQL.
...
Рейтинг: 0 / 0
Может или не может MySQL делать сложную выборку из нескольких таблиц?
    #38868543
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - ЭхHunterNomad,
отсортировать или отфильтровать?
словесное описание задачи сильно хромает. лучше бы привел тестовый набор данных, входные параметры поиска товара и желаемый результат на всём этом...


но в целом, не думаю, что задача настолько уж нерешаемая в рамках MySQL.
Согласен)) С терминами обшибся))
Нужно именно отфильтровать товары не только по цене, но и по атрибутам из другой таблицы protuct_attributes .
Не подскажите в какую сторону копать?
Может смогу доказать друзьям обратное))))
...
Рейтинг: 0 / 0
Может или не может MySQL делать сложную выборку из нескольких таблиц?
    #38868550
HunterNomad,

копать в сторону [LEFT | RIGHT] JOIN + WHERE.
...
Рейтинг: 0 / 0
Может или не может MySQL делать сложную выборку из нескольких таблиц?
    #38868575
Добрый Э - ЭхHunterNomad,

копать в сторону [LEFT | RIGHT] JOIN + WHERE.

Пробовал, не помогло.
Конечно, возможно запрос не правильно организован.
На выходе нужно получить товары отфильтрованные не только по цене (таблица protucts) но и по остальным атрибутам относящимся к этому товару (таблица protuct_attributes). О как)))))

Все равно спасибо))
...
Рейтинг: 0 / 0
Может или не может MySQL делать сложную выборку из нескольких таблиц?
    #38868588
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomadМне сказали, что MySQL в принципе на подобное не способен.


Способен.
...
Рейтинг: 0 / 0
Может или не может MySQL делать сложную выборку из нескольких таблиц?
    #38868592
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - ЭхHunterNomad,

копать в сторону [LEFT | RIGHT] JOIN + WHERE.

Только не LEFT | RIGHT, а просто JOIN.
ведь речь о фильтрации.
...
Рейтинг: 0 / 0
Может или не может MySQL делать сложную выборку из нескольких таблиц?
    #38868593
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(таблица categories)
id | name

(таблица protucts)
id | category_id | name | price

(таблица attributes)
id | category_id | name

(таблица protuct_attributes)
id | protuct_id | attribute_id | value


Код: sql
1.
2.
3.
4.
5.
6.
7.
select 
from protucts p
join categories c on c.id = p.category_id
join attributes a on a.category_id = p.category_id and a.name = 'Объём'
join protuct_attributes pa on pa.attribute_id = a.id and pa.protuct_id = p.id 
where c.name = 'Жесткие диски'
  and a.value = '1Tb'
...
Рейтинг: 0 / 0
Может или не может MySQL делать сложную выборку из нескольких таблиц?
    #38869184
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv(таблица categories)
id | name

(таблица protucts)
id | category_id | name | price

(таблица attributes)
id | category_id | name

(таблица protuct_attributes)
id | protuct_id | attribute_id | value


Код: sql
1.
2.
3.
4.
5.
6.
7.
select 
from protucts p
join categories c on c.id = p.category_id
join attributes a on a.category_id = p.category_id and a.name = 'Объём'
join protuct_attributes pa on pa.attribute_id = a.id and pa.protuct_id = p.id 
where c.name = 'Жесткие диски'
  and a.value = '1Tb'




Спасибо)) Есть доказательная база)))))))))))
...
Рейтинг: 0 / 0
Может или не может MySQL делать сложную выборку из нескольких таблиц?
    #38869237
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomadМне сказали, что MySQL в принципе на подобное не способен.Всё, что можно сделать на основании логики предметной области и имеющихся данных, можно сделать запросом.
...
Рейтинг: 0 / 0
Может или не может MySQL делать сложную выборку из нескольких таблиц?
    #38869553
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinaможно сделать запросом.Или несколькими запросами.

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


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