Связи таблиц с исключением

Lestat

Новичок
Связи таблиц с исключением

есть две таблицы..

/table /psv_users_group
login_id .........
3 ........

/table/ members
id login
1 admin
2 demo
3 lestat

нужно выбрать все записи из таблицы members, где поле id в таблице members не совпадает с полем login_id в таблице psv_users_group

$sql = "SELECT members.login,members.id,psv_users_group.login_id FROM members,psv_users_group WHERE members.id <> psv_users_group.login_id ORDER BY members.login";

что здесь не верно?
 

_RVK_

Новичок
Если я правильно понял вопрос то тебе нужно что то типа:
SELECT members.login, members.id FROM members WHERE members.id NOT IN (SELECT psv_users_group.login_id FROM psv_users_group) ORDER BY members.login
 

DiTHER

bang bang
_RVK_
MySQL имеет своё более шустрое решение (приведённый вариант работает одинаково хорошо и в mssql)

Код:
SELECT 
members.login, members.id 
FROM members 
LEFT JOIN psv_users_group 
           on psv_users_group.login_id = members.id
WHERE psv_users_group.id IS NULL 
ORDER BY members.login
это шустрее. и только для mysql.

теория такая: все значения где psv_users_group.login_id не имеет вхождения в members поле id, он проставит значение как NULL, после чего все эти записи попадут в выборку при WHERE.
 
Сверху