SQL> desc bbs;
Name Type         Nullable Default Comments 
---- ------------ -------- ------- -------- 
XH   NUMBER                                 
XM   VARCHAR2(20)                           
XB   VARCHAR2(10)                           
CSNY DATE                                   
SZCS VARCHAR2(30) Y                         
WD   NUMBER(4,1)  Y    SQL> desc ccs;
Name Type         Nullable Default Comments 
---- ------------ -------- ------- -------- 
XH   NUMBER       Y                         
XM   VARCHAR2(20) Y                         
CJ   NUMBER(3,1)  Y                         
NL   NUMBER(3,1)  Y  
我想查询表BBS中的CSNY、SZCS列和表CCS中的CJ列和NL列.
请问怎么实现  
顺便能用这两个表说下相等连接 、外连接、不等连接、自连接.

解决方案 »

  1.   

    SELECT A.CSNY,A.SZCS,B.CJ,B.NL
    FROM BBS A
    LEFT JOIN CCS B ON A.XH=B.XH AND A.XM=B.XM相等连接 --->INNER JOIN 完全相等则选出来
    外连接--->分为左连和右(左边是左表全部的,加右表符合条件;右连则反之)
    不等连接-->一般用IS NULL或IS NOT NULL来表达
    自连接--(如:select * from a,b)
      

  2.   

    相等连接:
    SELECT b.csny, b.szcs, c.cj. c.nl
      FROM bbs b JOIN ccs c
        ON (b.csny=c.cj AND b.szcs=c.nl);外连接:
    SELECT b.csny, b.szcs, c.cj. c.nl
      FROM bbs b LEFT OUTER JOIN ccs c
        ON (b.csny=c.cj AND b.szcs=c.nl);SELECT b.csny, b.szcs, c.cj. c.nl
      FROM bbs b RIGHT OUTER JOIN ccs c
        ON (b.csny=c.cj AND b.szcs=c.nl);不等连接
    SELECT b.csny, b.szcs, c.cj. c.nl
      FROM bbs b JOIN ccs c
        ON (b.csny<>c.cj OR  b.szcs<>c.nl);
      

  3.   

    自连接 SELECT B1.CSNY, B2.SZCS FROM BBS B1, BBS, B2 WHERE B1.XH = B2.XH
      

  4.   

    上边写错了 不好意思
    自连接 SELECT B1.CSNY, B2.SZCS FROM BBS B1, BBS B2 WHERE B1.XH = B2.XH