表一
id  msg  uid  uuid表二
uid name表一中的 uid 和 uuid 对应的都是表二中的uid,我希望查出来
表一中的每条信息和每条信息中uid、uuid对应的name值id msg uid(name) uuid(name)请问,该怎么写sql语句?

解决方案 »

  1.   

    uid、uuid对应的name值不是同一个吗?为什么要显示两次?
    select a.id,a.msg,b.name from 表一 a inner join 表二 on a.uid=b.uid
      

  2.   


    uuid 和 uid 都对应 表二的 uid,uuid 可以理解为 uid的父级id,uid 和 uuid 对应表二中不同记录中的uid。不知道这么表达是不是能表达清楚。
      

  3.   

       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
      

  4.   

    select a.id, a.msg, a.uid, b.name uidname, a.uuid, c.name uuidname from 表1 a, 表2 b, 表3 c where a.uid=b.uid and a.uuid=c.uid
      

  5.   

    加个换行吧,看得清楚些select a.id, a.msg, a.uid, b.name uidname, a.uuid, c.name uuidname 
      from 表1 a, 表2 b, 表3 c 
    where a.uid=b.uid and a.uuid=c.uid
      

  6.   

    汗,上面写错了,表3要改成表2select a.id, a.msg, a.uid, b.name uidname, a.uuid, c.name uuidname 
      from 表1 a, 表2 b, 表2 c 
    where a.uid=b.uid and a.uuid=c.uid
      

  7.   

    select a.id,a.msg,a.uid,(select [name] from 表二 where uid=a.uid) ,a.uuid,,(select [name] from 表二 where uid=a.uuid) from 表一 a