脑子糊涂了绕不过来这个弯  求助我有两个表,t1表存储数据,t2表存储t1表字段的中文名称t1t2表现在想写一条sql语句,能够查出t1表里 id in (1,2,3,4,5)的这几条记录每一个字段值的和,并且把字段名替换成t2表里对应的中文字段名,结果类似于
array(
   "攻击时附加" =>  6,
   "暴击效果" => 7,
   ....
)语句应该怎么写?   本来感觉应该不难的怎么就突然想不出来了   脖子都快抽筋了是不是表设计的有问题? 有没有更好的方式mysql表设计查询

解决方案 »

  1.   

    抱歉 结果数组我随手写的  没有准确计算数值 我重新写一下array(
        "攻击时附加$n点伤害"=>24,
        "生命值恢复增加每秒$n点"=>48,
        "暴击伤害增加$n"=>27,
        "装备等级减少$n"=>6,
        "金币掉落增加$n"=>100
    )当然,如果能查出
    array(
       0=> "攻击时附加24点伤害",
       0=> "生命值恢复增加每秒48点",
       0=> "暴击伤害增加27",
       0=> "装备等级减少6",
       0=> "金币掉落增加100"
    )
    不过貌似不太可能... 这样的设计或许有问题    
      

  2.   

    array(
       0=> "攻击时附加24点伤害",
       1=> "生命值恢复增加每秒48点",
       2=> "暴击伤害增加27",
       3=> "装备等级减少6",
       4=> "金币掉落增加100"
    )上边写的都是0是有误的..
      

  3.   

    select sum(col1),sum(col2),sum(col3),sum(col4),sum(col5) from t1 where id in(1,2,3,4,5);这样可以查询出五个col字段之和,不过你后面的更新没有规律,似乎只能写死的了。
      

  4.   


    这个不失为一个办法,虽然colx的数量可能有几十个但是毕竟变化不多但是没有语句可以直接"查出每一项的合"吗?
      

  5.   

    感觉是你表设计有问题。这个是一个m2m关系,一般设计3个表。
    我将你的大概理解为游戏中的武器附加属性:
    表a:武器表
    id name
     1  A
    表b:属性表
    id desc
     1 攻击附加n
     2 生命值恢复n表c:武器属性映射表
    id  a_id  b_id n
    1    1     1   24
    2    1     2   30表c的数据就说明了武器A攻击附加24,生命值恢复30个人拙见!不喜勿喷!
      

  6.   

    你的结果是“交叉表”
    你需要从 t2 中组装查询指令
    可以用存储过程,也可以用php