SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 07.03.2012 18:20:13

inkassator
Участник
Зарегистрирован: 07.03.2012
Сообщений: 2

Помогите составить запрос (JOIN, LEFT OUTER)

У меня есть две таблицы:

Первая names:
----------
id |name |
----------
1 |name1|
----------
2 |name2|
----------
3 |name3|
----------
4 |name4|
----------
5 |name5|
----------

и вторая group_name:
----------------------
id |id_name |group_id|
----------------------
1 |      2     |   1       |
----------------------
2 |      1     |   1       |
----------------------
3 |      3     |   3       |
----------------------
4 |      1     |   3       |
----------------------

еще есть таблица groups но думаю смысл понятен, нужно чтобы запрос возвращал те строки из таблицы names которые не состоят в группе 1(пример) в том числе и те которые не состоят вобще ни в каких группах.

SELECT *
FROM names
LEFT OUTER JOIN group_name ON group_name.id_name = names.id
WHERE group_name.id_group IS NULL


не подходит т.к. возвращает только те строки которые не состоят ни в одной группу

SELECT *
FROM names
LEFT OUTER JOIN group_name ON group_name.id_name = names.id
WHERE 'group_name'.'id_group', '!=', '1'


тоже не подходит так как не включает строки которые не состоят в группах

Отредактированно inkassator (07.03.2012 18:23:00)

Неактивен

 

#2 07.03.2012 19:03:19

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите составить запрос (JOIN, LEFT OUTER)

SELECT * FROM names LEFT JOIN
(select id_name, id_group from group_name where id_group !=1) t ON t.id_name = names.id
WHERE t.id_group IS NULL;

Неактивен

 

#3 07.03.2012 20:19:08

inkassator
Участник
Зарегистрирован: 07.03.2012
Сообщений: 2

Re: Помогите составить запрос (JOIN, LEFT OUTER)

Спасибо большое помогло, только вместо "!=" почему-то пришлось поставить "=" -)

Неактивен

 

Board footer

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