MySQL запрос - вывести людей, которых нет в другой таблице? - PullRequest
1 голос
/ 12 июля 2011

Надеюсь, я объясню это правильно.

Что у меня есть, этот запрос ..

SELECT *  FROM classesbooked 
JOIN name ON NameNo = classesbooked_nameno
Group By classesbooked_nameno

Это выдает мне все имена людей, которые забронировали класс.То, что я хочу, это наоборот.Все люди, которые находятся в таблице «имя», но не находятся в таблице «классы»

?

Ответы [ 4 ]

2 голосов
/ 12 июля 2011

Используйте левое соединение и выберите записи, в которых столбец соединения второй таблицы равен нулю.

select *
from name n
    left join classesbooked c on n.NameNo = c.classesbooked_nameno
where c.classesbooked_nameno is null
1 голос
/ 12 июля 2011

Попробуйте это:

   Select * from name tbl
        where tbl.NameNo 
        not in (select t.classesbooked_nameno 
                 from classesbooked_nameno t)
1 голос
/ 12 июля 2011

Один из способов сделать это можно с помощью подзапроса:

SELECT *
FROM name
WHERE NameNo NOT IN (
                       SELECT 
                          classesbooked_nameno
                       FROM classesbooked
                    )

По сути, это говорит о том, что нужно вернуть все в таблице name, у которой нет связанного идентификатора в classesbooked

0 голосов
/ 12 июля 2011
SELECT * 
FROM name 
  LEFT JOIN classesbooked 
    ON NameNo = classessbooked_nameno 
WHERE classesbooked_nameno IS NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...