MySQL查询 - 让人们不在另一个表中?

时间:2011-07-12 14:22:31

标签: mysql sql

我希望我能正确解释。

我所拥有的是这个查询..

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

这让我了解了预订课程的所有人的名字。我想要的是相反的。所有在表中都有“名字”但不在表'classbooked'中的人

4 个答案:

答案 0 :(得分:2)

使用左连接并选择第二个表的连接列为空的记录。

select *
from name n
    left join classesbooked c on n.NameNo = c.classesbooked_nameno
where c.classesbooked_nameno is null

答案 1 :(得分:1)

您可以通过子查询实现此目的的一种方法:

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

基本上,这表示返回name

中没有关联ID的表classesbooked中的所有内容

答案 2 :(得分:1)

试试这个:

   Select * from name tbl
        where tbl.NameNo 
        not in (select t.classesbooked_nameno 
                 from classesbooked_nameno t)

答案 3 :(得分:0)

SELECT * 
FROM name 
  LEFT JOIN classesbooked 
    ON NameNo = classessbooked_nameno 
WHERE classesbooked_nameno IS NULL