Php 动态Mysql查询未给出正确的结果

Php 动态Mysql查询未给出正确的结果,php,mysql,Php,Mysql,我有这样的mysql查询 SET @sql = NULL; SELECT GROUP_CONCAT( 'fvalue AS ',x.name ) INTO @sql from reimbursment x LEFT JOIN reimbursment_limit y ON y.acc_code = x.acc_code; SET @sql = CONCAT('SELECT b.firstname, ', @sql, ' from user b left join rei

我有这样的mysql查询

SET @sql = NULL;
SELECT

  GROUP_CONCAT(
      'fvalue AS ',x.name
  ) INTO @sql

from reimbursment x
LEFT JOIN reimbursment_limit y
ON y.acc_code = x.acc_code;

SET @sql = CONCAT('SELECT b.firstname, ', @sql, ' from user b
left join reimbursment_limit c
  on b.id = c.user_id
left join reimbursment d
  on c.acc_code = d.acc_code
group by b.id');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
firstname Dentis Allowance
AAAAA     500000 500000
BBBBB     null   null
像这样的桌子

使用者

偿还

id acc_code name
1  22002    Dentis
2  22004    Allowance
偿还限额

id user_id acc_code fvalue
1  1       22002    500000
2  1       22004    700000
结果呢,像这样

SET @sql = NULL;
SELECT

  GROUP_CONCAT(
      'fvalue AS ',x.name
  ) INTO @sql

from reimbursment x
LEFT JOIN reimbursment_limit y
ON y.acc_code = x.acc_code;

SET @sql = CONCAT('SELECT b.firstname, ', @sql, ' from user b
left join reimbursment_limit c
  on b.id = c.user_id
left join reimbursment d
  on c.acc_code = d.acc_code
group by b.id');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
firstname Dentis Allowance
AAAAA     500000 500000
BBBBB     null   null
正确的结果,必须

firstname Dentis Allowance
AAAAA     500000 700000
BBBBB     null   null
这个查询正在运行,但没有给出正确的结果,其中用户AAAAA的余量必须为700000,如何修复结果?我尝试了任何方法,但仍然没有给出正确的结果


谢谢

问题在于“加入”组的方式

SET @sql = CONCAT('SELECT b.firstname, ', @sql, ' from user b
left join reimbursement c -- swapped join clause
  on b.id = c.user_id
left join reimbursment_limit d
  on c.acc_code = d.acc_code'); -- removed group by

我认为正确的关系是:在b.nip=c.user上_id@devpro:谢谢,对不起,我错了创建问题,我一直在编辑我的问题,我无法打开你的sqlfiddle,不左边的连接是对的,我只是错误地给出记录,我已经修复了右边在b.id=c.user\u id报销限额中的user\u id都是1。这意味着这两个记录都与用户AAAAA绑定是的,正确的用户AAAAA必须获得500000和700000否,请在我的问题中查看我完整的正确结果您要查找的是数据透视表。请看