TABLE A:  PID、NAME、CID
TABLE B:  CODE、CID
TABLE C:  GRADE、CID
SELECT A.NAME,B.CODE,C.GRADE FROM A, B, C  WHERE A.CID=B.CID AND A.CID=C.CID A中有一条数据   若B、C中各有两条数据  查询出来应当为两条数据 可是查询出来有4条数据
                若B中有两条数据,C中有四条 查询出来应当为三条数据  可是查询出来有6条B表和C表没有关系

解决方案 »

  1.   

    就因为你B和C没有关系,而你结果B.CODE和C.GRADE要想在一条记录,肯定采用笛卡尔乘积的
      

  2.   

    可是怎么能得我想要的结果呢  查询出来的数据条数为MAX(B,C)的条数,并且B,C中数据少的对应为空
      

  3.   

    B表和C表没有关系
    也不能说没有关系,只能说是没有直接的关系
    但是都跟A表有关,所有还是间接关系的
      

  4.   

    好比说 A:小王(name)、001(cid)
           B:98(code)、001(cid)
            78(code)、001(cid)
          C:a(grade)、001(cid)我想得到这样的结果:  小王,98,a
                       小王,78
      

  5.   

    WHERE A.CID=B.CID AND A.CID=C.CID 
    你的WHERE条件中明显隐含着一个条件就是B.CID=C.CID