SELECT au1.au_fname, au1.au_lname, au2.au_fname, au2.au_lname
FROM authors au1 INNER JOIN authors au2 
   ON au1.zip = au2.zip and au1.au_lname = au2.au_lname
WHERE au1.city = 'Oakland' 
ORDER BY au1.au_fname ASC, au1.au_lname ASC

解决方案 »

  1.   

    自联接与自身比较au1.zip = au2.zip  那么所有行是相等的那还有什么意义 就算加了条件au1.city = 'Oakland'  那么也应该是5条记录输出 而实际输出是11条记录 
    那位打哥帮我说清楚 给你另外加50分 谢谢
      

  2.   

    on 是什么意思 书上没有介绍过
    表示两个表进行连接的条件.
    inner join .. on ....
    得到的记录应该是两表的交集,再去比较你的where条件
    至于你为什么得到11条记录,建议楼主还是贴出表结构和数据出来看一下吧
      

  3.   

    SELECT au1.*,au2.*
    FROM authors au1 INNER JOIN authors au2 
       ON au1.zip = au2.zip
    慢慢體會
      

  4.   

    这是SQL的帮助文档
    这是SQL自带的PUBS库