表1
A            B          Ckey001      name1       password1
key002      name2       password2表2
A            Dkey001      text1
key002      text2通过表1,表2, SQL查询结果显示
A            B          C Dkey001      name1       password1 text1
key002      name2       password2 text2而不是。
A            B          C Dkey001      name1       password1 text1
key002      name2       password2 text1
key001      name1       password1 text2
key002      name2       password2 text2

解决方案 »

  1.   

    select 表1.A, 表1.B,表1.C,表2.D from 表1 left join 表2 on 表1.A=表2.A
      

  2.   

    或者 select 表1.A, 表1.B,表1.C,表2.D from 表1 ,表2 where 表1.A=表2.A   根据需要写吧。
      

  3.   

    select 表1.A, 表1.B,表1.C,表2.D from 表1 ,表2 where 表1.A=表2.A;  
      

  4.   

    直接join查询就可以了。
    不过需要注意,表中不要出现A字段重复的数据,例如:
    key001      text1
    key002      text2
    ...
    key001      text3
      

  5.   

    目测楼主是要做笛卡尔积,那么久不用写连接条件,直接这样写:
    select 表1.A, 表1.B,表1.C,表2.D from 表1 ,表2;
    不过这样写的是没意义的, 估计楼主还是学生吧, 在工作中这种情况是遇不见的哦。所以不要纠结这些问题啦,好钢要用在刀刃上
      

  6.   

    用 LEFT JOIN 就可以了吧
      

  7.   

    用 LEFT JOIN 就能够搞定的吧
      

  8.   

    内连接:(如果表TABLE2中在TABLE1中没有,就不会查询出结果)
    SELECT A1.* , A2.D FROM TABLE1 A1 INNER JOIN TABLE2 A2 ON A1.A = A2.A
    左外连接:(如果表TABLE2中在TABLE1中没有,则TABLE2中的值统统用NULL来表示)
    SELECT A1.* , A2.D FROM TABLE1 A1 LEFT JOIN TABLE2 A2 ON A1.A = A2.A
    交叉连接:(会把TABLE1和TABLE2两个表的内容都加到一起)
    SELECT * FROM TABLE1 CROSS JOIN TABLE2
      

  9.   

    笛卡尔乘积,select 表1.A, 表1.B,表1.C,表2.D from 表1 join 表2