select * from aa left join b on aa.a=b.b right join c on aa.a=c.c inner join d on aa.a=d.d where aa.c='dsg'

解决方案 »

  1.   


    select distinct * 
    from aa 
    left join b on aa.a=b.b 
    right join c on aa.a=c.c 
    inner join d on aa.a=d.d 
    where aa.c='dsg'
      

  2.   

    去掉重复的数据可以使用distinct:
    select distinct* from aa left join b on aa.a=b.b right join c on aa.a=c.c inner join d on aa.a=d.d where aa.c='dsg'如果这样还没实现楼主的需求,那就看看连接方式是否正确。最好是给出数据和你要的结果,方便问题解决
      

  3.   

    SQL LEFT JOIN 关键字
      

  4.   

    使用了distinct*去掉重复数据也不可以实现 就是表aa中有关于的c字段的数据是“dsg”的a字段就有“3”和“4”内容,而表d字段是d而内容是“3”“4”的有4条记录,而表b的字段是b为“3”“4”的记录有3条,而执行select distinct* from aa left join b on aa.a=b.b right join c on aa.a=c.c inner join d on aa.a=d.d where aa.c='dsg' 后,查询出来的结果数据就有6条,,,不解
      

  5.   

    一对多的数据肯定出现这种情况 首先你要确定如果a字段有多个值你想取哪一个(按什么条件取,比如按照a字段对应id,取最大id的那个)  然后在where中添加一个子查询条件就行   可以参考我刚问过的一个问题http://topic.csdn.net/u/20120229/15/ade98753-80b1-41e0-919d-abf1edd14f39.html
      

  6.   


    你是多表查询 distinct 多表的结果 多个表格并起来数据不同 已经不是重复数据了。应该过滤某字段重复数据。