做什么?表有相似字段就不用合并了啊select max(num) from 表3

解决方案 »

  1.   

    你的表3和表1、2是通过什么来关联?name?
    表ID是指什么?在另两个表中的id号?显示没有销售的用left join
      

  2.   

    TO:helloyou0(你好!) 
    是采用biao_id保存表1和表2的ID可以集体些嘛
      

  3.   

    try this: select * from tt1 left join tt3 on tt3.biao_id=tt1.id and sign='A'
     union
     select * from tt2 left join tt3 on tt3.biao_id=tt2.id and sign='B';看是否是你需要的。
      

  4.   

    TO:helloyou0(你好!) 简单的说。表3是销售统计表;而表1和表2分别是商品表;我现在是想按《每周销售量》按《每月销售量》按《更多》如果表3里只有一条销售的话,接着显示没有销售的商品;不能重复显示刚才销售的商品了注明:可能是我表达能力不好;多多包涵
      

  5.   

    select name,max(num) from 
    ( select tt1.id,tt1.name name,tt3.id,tt3.num from tt1 left join tt3 on tt3.biao_id=tt1.id and sign='A' 
    union 
    select tt2.id,tt2.name name,tt3.id,tt3.num from tt2 left join tt3 on tt3.biao_id=tt2.id and sign='B') x
    group by name这样可以得到每种商品最大值
      

  6.   

    我们现在分三个表:
    表1:储存商品;
    表2:也是储存商品(这里属性不一样所以分开两个表)
    表3:是销售统计表(被购买一个则记录商品ID和标志)下面表之间的关系:表1:
    id    name   
    1     电脑
    2     鼠标
    ...........
    ..............
    表2:
    id    name 
    1     CSDN图书
    2     技术图书
    3     漫画
    ............
    .............表3:id      biao_id(分别为表1和表2的id)   name     num(销售数量)     sign(标志A为表1、B表2)
    1        3                            漫画     2                   B
    2        1                            电脑     1                   A
    3        1                            CSDN图书 3                   B显示出来应该是这样的:CSDN图书
    漫画
    电脑
    (后面两个是没有销售的,也显示在后面)
    鼠标
    技术图书
      

  7.   

    哦。有点明白了。
    不知道你的表3会不会有同一个商品的两条记录?我上面那个可以改一下:
    select name,max(num) mm from
    ( select tt1.id,tt1.name name,tt3.id,tt3.num from tt1 left join tt3 on tt3.biao_id=tt1.id and sign='A'
    union
    select tt2.id,tt2.name name,tt3.id,tt3.num from tt2 left join tt3 on tt3.biao_id=tt2.id and sign='B') x
    group by name
    order by mm desc这样是如果有同一商品的多条记录,显示的是最大的那条。====================
    如果没有多条记录,
    应该这样就可以了
    select distinct name from
    ( select tt1.id,tt1.name name,tt3.id,tt3.num from tt1 left join tt3 on tt3.biao_id=tt1.id and sign='A'
    union
    select tt2.id,tt2.name name,tt3.id,tt3.num from tt2 left join tt3 on tt3.biao_id=tt2.id and sign='B') x
    order by num desc;=====================
    我在自己这里大概试了一下,语法没问题,但不知道是否完全符合你的要求。这个句子其实是3部分,
    union前后两句其实是一样的,就是简单地分别把表1和表3,表2和表3联合起来,
    你可以单独执行()内地语句看看结果就明白了外面的是以上面union的结果作为一个表,进行查询(相当于一个临时表)。有时候这样的语句可以适当简化或者优化一下。
      

  8.   

    思路是这样的:
    显示表3内容完了。在根据表3判断。如果存在在表3中的内容。显示表1和表2就不显示了不知道上面写的是否可以实现我觉得应该不用tt3.biao_id=tt1.id and sign='A'直接把全部的内容放在一个表里。然后根据销售数量来排序了不知道这样构思是否可以显现因为上面没有实施过。所以我在这些写个思路先。有不对的。。请改正
      

  9.   

    怎么显示错误。。好像是语句错误的Invalid query: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select tt1.id,tt1.name name,tt3.id,tt3.num from tt1 left join t
      

  10.   

    mysql版本?我用的4.1
    QQ上我加你了