Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка идентификаторов с совпадением по множеству свойств / 6 сообщений из 6, страница 1 из 1
23.04.2014, 10:38:09
    #38622578
bobbi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка идентификаторов с совпадением по множеству свойств
Есть таблица prop_table вида
elementId propertyId
где elementId идентификатор объекта
propertyId идентификатор свойства.

Пример таблицы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
elementId propertyId
1             10
1             12
1             13
2             10
2             11
3             10
3             12

Нужно выбрать такие elementId для которых есть записи с propertyId 10 и propertyId 12.
В данном случае результатом выборки должно быть 1, 3.
...
Рейтинг: 0 / 0
23.04.2014, 11:28:29
    #38622667
bobbi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка идентификаторов с совпадением по множеству свойств
Забыл уточнить, у меня есть решение вида

SELECT elementId.prop_table
FROM prop_table AS t1
LEFT JOIN prop_table AS t2 ON t1.elementId = t2.elementId
WHERE
t1.propertyId = 10 AND t2.propertyId = '12'

если поиск будет по 3 и тп совпадениям то соотвественно количество джойнов будет увеличиваться.
...
Рейтинг: 0 / 0
23.04.2014, 13:47:30
    #38622996
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка идентификаторов с совпадением по множеству свойств
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select element_id,count(distinct proper_id)
from table
where proper_id = val1 OR
where proper_id = val2 OR
where proper_id = val3 OR
....
where proper_id = valN OR

group by element_id
having count(distinct proper_id) = N
...
Рейтинг: 0 / 0
23.04.2014, 14:12:50
    #38623050
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка идентификаторов с совпадением по множеству свойств
вот про это
Код: sql
1.
2.
3.
4.
5.
where proper_id = val1 OR
where proper_id = val2 OR
where proper_id = val3 OR
....
where proper_id = valN OR


по-подробнее ....
...
Рейтинг: 0 / 0
23.04.2014, 14:54:01
    #38623140
bobbi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка идентификаторов с совпадением по множеству свойств
Спасибо все работает.
А where просто лишние

where proper_id = val1 OR
proper_id = val2 OR
proper_id = val3 OR
....
proper_id = valN
...
Рейтинг: 0 / 0
23.04.2014, 15:23:12
    #38623210
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка идентификаторов с совпадением по множеству свойств
bobbi,

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


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