SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.11.2011 13:13:53

aNiru
Участник
Зарегистрирован: 11.11.2011
Сообщений: 3

Исключение записей, которые есть во второй таблице

Доброго дня. Не могу решить такую задачу.
Есть две таблицы:
accounts
id | account_name
1 | Fedor
2 | Alex
3 | Fekla
4 | Jack

и
results
account_id | job_id | date
1 | 5 | 25.01.2011
2 | 5 | 25.01.2011
3 | 5 | 25.01.2011
1 | 6 | 25.01.2011
2 | 6 | 25.01.2011

Мне необходимо получить все записи из accounts (для определенного job_id), исключая те, которые занесены в results.
Например, если нужно получать список из accounts для job_id==5, то должен вернуться список из одного аккаунта:
4 | Jack
При job_id==6 должны вернуться уже такие записи:
3 | Fekla
4 | Jack

Заранее спасибо, если сможете помочь.

Отредактированно aNiru (11.11.2011 13:59:36)

Неактивен

 

#2 11.11.2011 13:31:46

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Исключение записей, которые есть во второй таблице

Доброго дня.
Вы пишете, сначала при job_id==5 должен вернуться список из одного аккаунта (4|Jack),
а после, что при job_id==5 должны вернуться две записи - (3|Fekla),(4|Jack). А это уже взаимоисключающие параграфы wink.

Еще момент - пишете про необходимость получить все записи для определенного job_id, а как быть с теми записями из accounts, которых нет в results, и следовательно для них не установлен job_id вовсе?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 11.11.2011 14:05:25

aNiru
Участник
Зарегистрирован: 11.11.2011
Сообщений: 3

Re: Исключение записей, которые есть во второй таблице

Ошибочка закралась. Во втором варианте: job_id==6.
Т.е. получается так, что нужно получить все записи из accounts, исключая те, которые есть в results (с определенным job_id).

Отредактированно aNiru (11.11.2011 14:05:54)

Неактивен

 

#4 11.11.2011 14:12:08

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Исключение записей, которые есть во второй таблице

Попробуйте

select * from accounts a where not exists(select * from results where job_id=5 and account_id=a.id);


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 11.11.2011 14:36:12

aNiru
Участник
Зарегистрирован: 11.11.2011
Сообщений: 3

Re: Исключение записей, которые есть во второй таблице

deadka, премного благодарствую. Это именно то, что было нужно.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson