假设a,b两个表都有id字段
在where里 如果 a.id=+ b.id ,那么结果就是将b.id都列出来,即使a.id里没有和b.id对应的也把b.id的列出来
反过来 就是把a.id的内容全列出来了

解决方案 »

  1.   

    简单的说 列名后面跟了个(+) , 表示 这一列如果没有相应的数据就是NULL, 如果没有(+)  那么如果没有相应的数据,整条记录都不会被选择出来
      

  2.   

    tb1              tb2
    ----------       -------
    id   text        id   text1    'a'         3    'cc'
    2    'b'         4    'dd'
    3    'c'         5    'ee'
    4    'd'         6    'ff'
    5    'e'         7    'gg'建两张如上的表,自己做一下各内、外连接的实验。观察实验结果。你就会理解了。
    如果做完实验,还是不懂再问。
      

  3.   

    select * from a,b where a.col1=b.col1(+)a表中的所有数据都显示出来,b表中如果符合a.col1=b.col1的数据,则对应上并显示b的数据
    否则,b表列数据显示null
      

  4.   

    谢谢了!我明白了,但还有问题:
    像楼上"ineedtostudy(amei)"所说的 "a.id=+ b.id" 也可以吗?我一般看到的都是在字段的后面加"(+)"   如  t1.column_a = t2.column_b(+) 或  t1.column_a(+) = t2.column_b具体在书写上有什么格式吗?
      

  5.   

    a.id=+ b.id这个应该是笔误吧
      

  6.   

    对 "a.id=+ b.id"是写错了!
    我刚试了一下,
    发现以下都为非法:
    t1.c_a=(+)t2.c_a
    t1.c_a(+)=t2.c_a(+)
    t1.c_a=t2.c_a+
    没错吧
      

  7.   

    以下怎么会对啊??
    t1.c_a=(+)t2.c_a
    错:(+)要放在列名后t1.c_a(+)=t2.c_a(+)
    错:不存在左右链接t1.c_a=t2.c_a+
    错:+是加号,明显不行
      

  8.   

    to   doulikeme(来去无踪) ( ) 
    第二条:   应该是存在左右连接的吧,第二条好像是对的
      

  9.   

    t1.c_a(+)=t2.c_a(+)的写法肯定是错误的。
    但如何写可能是左连接,又可能是右连接的语句呢?
    并不确定是左边多还是右边多。