我正在寻找一个干净,快速和良好的解决方案为这个行动。首先我有一张这样的table
field_id - item_id - value
1 - 781 - name1
2 - 781 - lastname1
3 - 781 - phone1
1 - 782 - name2
2 - 782 - lastname2
3 - 782 - phone2
1 - 783 - name3
2 - 783 - lastname3
3 - 783 - phone3
我想这样显示这个表:
item_id - name - lastname - phone
781 - name1 - lastname1 - phone1
782 - name2 - lastname2 - phone2
783 - name3 - lastname3 - phone3
我试过了
SELECT field_id, item_id,
(CASE WHEN field_id = 1 THEN value END) AS name,
(CASE WHEN field_id = 2 THEN value END) AS lastname,
(CASE WHEN field_id = 3 THEN value END) AS phone
FROM cq6xb_fields_values
GROUP BY item_id;
但我得到了一个奇怪的结果
item_id - name - lastname - null
781 - null - lastname1 - null
782 - null - lastname2 - null
783 - null - lastname3 - null
2条答案
按热度按时间up9lanfz1#
注意:请看我在您的问题下的评论,表结构本来就不好,这就是为什么它变得如此复杂的原因。
如果您真的想这样做,您需要连接到限制为所属字段\ id值的表,或者使用子查询。
所以这可以起作用:
5us2dqdw2#
你不远,只要添加max,你可以删除字段id,因为你不使用它。