Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка значений из одной таблицы по отсутсвию записей во второй. / 6 сообщений из 6, страница 1 из 1
09.09.2013, 13:14:50
    #38390906
Tam_tam_tam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы по отсутсвию записей во второй.
К сожалению, не смог придумать более корреткной формулировки, которая входила бы в поле Темы.

Описание проблемы:

Существуют две таблицы A и B, в первой хранятся объекты, а во второй состояния объектов, рпи это у одного объекта может быть несоклько состояний. Например

ID OBJECT1 Объект12 Объект23 Объект34 Объект4
ID OBJECT_ID CONDITION11Состояние121Состояние231Состояние342Состояние252Состояние363Состояние274Состояние3

Набор состояний в которых может находится объект задан заранее и ограничен (всего существует порядка 5 различных состояний). Как сделать выборку объектов по состояниям в которых он должен находится, при улсовии что он не должен находится более ни в каких других состояниях? Т.е. если я хочу выбрать объекты с Состоянием2, то получу Объект3, но не Объект2, так как он находится так же и в Состоянии3. Если я хочу получить объекты в Состояниях 2 и 3, то получу Объект2, Объект3 и Объект4, но не Объект1, так как у него существует Состояние1.

Какой наиболее оптимальный запрос здесь можно использовать?
...
Рейтинг: 0 / 0
09.09.2013, 13:25:42
    #38390920
Выборка значений из одной таблицы по отсутсвию записей во второй.
not exists тебе в помощь
...
Рейтинг: 0 / 0
09.09.2013, 14:32:17
    #38391018
Tam_tam_tam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы по отсутсвию записей во второй.
Спасибо, это действительно то, что мне нужно было. Хотя через DBIx::SearchBuilder это будет реализовать несколько геморно, так что если появятся еще враианты, буду благодарен
...
Рейтинг: 0 / 0
09.09.2013, 14:41:34
    #38391035
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы по отсутсвию записей во второй.
См. FAQ по выбору первого/последнего в группе. Тебе собсно и надо последнее состояние (видимо, при сортировке по B.ID).
...
Рейтинг: 0 / 0
09.09.2013, 14:52:24
    #38391057
Tam_tam_tam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы по отсутсвию записей во второй.
К сожалению, по существованию одного состояния я не могу определить существование/не существование других, иначе все было бы несколько проще
...
Рейтинг: 0 / 0
09.09.2013, 15:09:42
    #38391094
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка значений из одной таблицы по отсутсвию записей во второй.
т.е. порядок не при делах, просто наличие? ну вот какой-нить такой бред...
Код: sql
1.
2.
3.
4.
SELECT object_id
FROM table2
GROUP BY object_id
HAVING COUNT(condition) = SUM(condition IN ('Состояние2', 'Состояние3'))
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка значений из одной таблицы по отсутсвию записей во второй. / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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