你说的情况是正常,如果你的sresult派生表中Key没有重复值,结果就是这样。

解决方案 »

  1.   

    比如两个表:
    PoHead(ID,PoNo,ClientID) 和 Client(ID,Name)PoHead 数据
    ----------------------------------------------------
    1    Po20030101    1
    2    Po20030102    1
    3    Po20030103    1
    4    Po20030104    2
    5    Po20030105    3
    ----------------------------------------------------Client 数据
    ----------------------------------------------------
    1    IBM
    2    SUN
    3    ORACLE
    ----------------------------------------------------
    查询:
    Select poh.id,poh.PoNo,cl.name from PoHead poh full(inner,left,right) join Client cl on cl.id=poh.ClientID则,无论你怎么 Join (Left,Right,Full,Inner),结果都一样,因为 PoHead 表中所有行数据的 ClientID 都能在 Client 的 ID 列找到关联;同时 Client 表所有行数据的 ID 列全部能在 PoHead 的 ClientID 列找到关联。查询结果
    1    Po20030101    IBM
    2    Po20030102    IBM
    3    Po20030103    IBM
    4    Po20030104    SUN
    5    Po20030105    ORACLE现在假设 Client 的数据是这样Client 数据
    ----------------------------------------------------
    1    IBM
    2    SUN
    3    ORACLE
    4    MS
    ----------------------------------------------------Left Join 的查询结果为 
    1    Po20030101    IBM
    2    Po20030102    IBM
    3    Po20030103    IBM
    4    Po20030104    SUN
    5    Po20030105    ORACLEfull Join 的查询结果却为 
    1    Po20030101    IBM
    2    Po20030102    IBM
    3    Po20030103    IBM
    4    Po20030104    SUN
    5    Po20030105    ORACLE
    null null          MS
      

  2.   

    我明白你们说的,但这些不是我所面临的情况。我有一张images表,有四个全文检索字段,其中ename, ecaption和ekwords是英文字段。我想要把三个字段中任意一字段含有检索词的纪录挑出来。因此用了两个full join来连接三个查询(三个查询结果不同,有交叉),但最后结果集却只相当于left join.大家帮帮忙。