我有一个二维表,如何将数据带到如下?

时间:2017-08-12 20:24:58

标签: php mysql

表名client

id name        mail
1  semsi pasa  semsi@semsi.com
2  demir ali    mermer@mermer.com

表名registerid

fields clientid values
4       1        94858
5       1        3493848484
4       2        32423
5       2        4324242342
foreach($user as $key => $val){
  echo "one row:".$user[$key]['name']." ".$user[$key]['mail']." ".$user[$key]['values']."<br>";
}

它看起来像在屏幕上

semsi pasa semsi@semsi.com 948583493848484
demir ali  mermer@mermer.com 324234324242342

3 个答案:

答案 0 :(得分:3)

我认为你正在寻找聚合:

select c.name, c.mail, group_concat(r.values order by fields separator '' )
from client c join
     registerid r
     on c.id = r.clientid
group by c.id;

注意:如果您决定在值之间单独使用,请使用''以外的内容。

答案 1 :(得分:0)

因为您还需要获取字段值,

所以在上面的答案中添加“字段”,就会得到这个查询 -

select c.name, c.mail, r.fields, group_concat(r.values order by fields separator '' )
from client c join
     registerid r
     on c.id = r.clientid
group by c.id;

答案 2 :(得分:0)

SELECT GROUP_CONCAT(tt.value order by tt.fieldid = 4 separator '' ) FROM tc JOIN tt ON tc.id = tt.relid where tt.fieldid IN ('4','5') group by tc.id

谢谢我的方式。