这是手册中的例子
如果在一个LEFT JOIN中没有右表的匹配记录,一个所有列设置为NULL的行被用于右表。你可以使用这个事实指出表中在另一个表中没有对应记录的记录: 
mysql> select table1.* from table1
           LEFT JOIN table2 ON table1.id=table2.id
           where table2.id is NULL;这个例子找出在table1中所有的行,其id值在table2中不存在(即,所有table1中的在table2中没有对应行的行)。当然这假定table2.id被声明为NOT NULL。

解决方案 »

  1.   

    xuzuning(唠叨) 
    呢说的那个例子,我看过。
    但是那个例子是没有查询条件的,即:WHERE NodeID='7'
    我不知道这个条件应该如何加,加在那个sql语句的那个地方?
    谢谢,可以的话帮忙写一下。
      

  2.   

    select * from Users left join UserNodeList on Users.UserID=UserNodeList.UserID where NodeID<>'7'
      

  3.   

    由于没有相应的表做测试(其实你应该提供的),大致可以这样写
    SELECT * FROM Users 
      LEFT JOIN UserNodeList ON Users.UserID=UserNodeList.UserID and UserNodeList.NodeID='7'
      WHERE UserNodeList.UserID id NULL
      

  4.   

    xuzuning(唠叨) 
    其实,我在上面已经把表结构给列出来了
    Users(UserID, Username, Password)
    UserNodeList(NodeID, UserID)
    其中UserID和NodeID都是int,UserID为自动增量
    NodeID是从另外一个表中取得的int值。
    我晚上回去试试,看可不可以,谢谢。
      

  5.   

    谢谢 xuzuning(唠叨) 
    成功,揭帖。