Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сортировка результатов из EAV / 6 сообщений из 6, страница 1 из 1
20.05.2014, 16:16:59
    #38646669
xmlns
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка результатов из EAV
Добрый вечер.
Использую модель EAV. Хочу вывести результаты поиска отсортированными, но не получается этого сделать - пробовал с join - вроде результат есть, но не тот, который нужен. Итак, есть таблицы, структура которых такова: ID | ParamID | Value. Такие таблиц несколько (по типам - строковые, целые, флотовые, диапазоны...). Хочу вывести на экран результат поиска (выбираются данные, лежащие в другой таблице - название, ссылка, картинка...), который отсортирован по ParamID=1 например. Пусть я узнал, в какой именно таблице лежит данный параметр (MyTable). Теперь как отсортировать по его полю Value? Ведь есть сущности (товары) у которых вообще нет данного параметра (но находятся в одной категории).
Я честно говоря не знают как такое делается в CMS, но предполагаю, что нужно сделать join таблицы, в которой лежит ParamID=1 - если у данной сущности есть такой параметр - вписать его, если нет - вписать NULL и по результату отсортировать. Тогда как сделать правильный джойн, чтобы в выборки был именно ParamID=1, а не любые другие параметры из таблицы MyTable.
...
Рейтинг: 0 / 0
20.05.2014, 16:30:24
    #38646684
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка результатов из EAV
Насколько я понял, вам нужен LEFT JOIN, в условие соединения которого включено условие ParamID=1.
...
Рейтинг: 0 / 0
20.05.2014, 16:31:09
    #38646687
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка результатов из EAV
xmlns,

EAV - это Esset Anti Virus?!

PS
есть общее правило хорошего тона - использовать только общепринятые официальные абривиатуры. сокращения в контексте - например авторы хороших технических книг обычно вводят пару тройку подобных абривиатур, вплоть до сокращённого названия часто используемой пользовательской функции.

PS
для других кто сразу не вспомнит что это
Entity-Atribute-Value model

модель когда для сущностей набор(число и какие именно) атрибутов плавающий, и по сути имеем
таблицы атрибуты(вес, рост, ....,что-тоещо) и связи таблица(сущность,атрибут,значение)
...
Рейтинг: 0 / 0
20.05.2014, 16:33:09
    #38646690
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка результатов из EAV
miksoftНасколько я понял, вам нужен LEFT JOIN, в условие соединения которого включено условие ParamID=1.

если не включить, будет тоже самое(вплане оптимизатор мускла выкупит тему)
...
Рейтинг: 0 / 0
20.05.2014, 16:37:41
    #38646696
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка результатов из EAV
alex564657498765453miksoftНасколько я понял, вам нужен LEFT JOIN, в условие соединения которого включено условие ParamID=1.

если не включить, будет тоже самое(вплане оптимизатор мускла выкупит тему)Если не включить, то записи в результате замножатся, т.к. у товаров, как правило, более одного параметра.
...
Рейтинг: 0 / 0
20.05.2014, 16:39:14
    #38646700
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка результатов из EAV
alex564657498765453miksoftНасколько я понял, вам нужен LEFT JOIN, в условие соединения которого включено условие ParamID=1.

если не включить, будет тоже самое(вплане оптимизатор мускла выкупит тему)

страно, счас проверил, если всетаки парамайди оставить в секции веар, то ехплейн выдаёт оптимальный план
найти сначала запись по этому ключу, а потом уже из другой таблицы связанные

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


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