Исключить списки пользователей из списка участников (union?) - PullRequest
0 голосов
/ 15 сентября 2011

Ваше руководство действительно ценится по следующему вопросу.

Я пытаюсь отобразить список пользователей (для пользователя), удаляя пользователей, которые уже существуют в других его / ее списках.

Например, я хочу, чтобы все пользователи моих сайтов отображались пользователю, за исключением его заблокированного списка.

Я считаю, что мне нужно использовать оператор UNION, но у меня нет предыдущего опыта в этом.

это было бы что-то вроде?

SELECT * FROM myMembers WHERE id='$id'
UNION
SELECT * FROM blocked WHERE id!='$id'
UNION
.
.
.

Просто не чувствую себя хорошо ... Моя схема базы данных:

myMembers
-----------------------
id        username
-----------------------
1              x
2              y
3              z

Blocked
---------------------------------------------------------
id        mem1        mem2
---------------------------------------------------------
1              2              1
2              4              1

mem2 = пользователь, выполняющий блокировку.

Ответы [ 2 ]

0 голосов
/ 15 сентября 2011

Как насчет следующего:

SELECT DISTINCT * FROM myMembers 
WHERE id NOT IN (
  SELECT id FROM Blocked 
  WHERE mem2 = '$user_viewing_list'
)
0 голосов
/ 15 сентября 2011
SELECT * FROM myMembers WHERE id NOT IN (SELECT * FROM Blocked WHERE mem2!='$userid')

где ИД пользователя - это идентификатор пользователя, которому вы отображаете список

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...