【发布时间】:2012-09-24 17:23:56
【问题描述】:
我有两张桌子ticket 和attr。表ticket 有ticked_id 字段和其他几个字段。表attr 有3个字段:
ticket_id - numeric
attr_type - numeric
attr_val - string
attr_type 是一个固定的枚举值。例如,可以是1、2 或3。
我需要进行查询,结果将是 4 列:
ticket_id, attr_val 用于attr_type=1, attr_val 用于attr_type=2, attr_val 用于attr_type=3
如果attr表中没有attr_type的对应值,则对应列应显示NULL值。
例子:
ticket
ticket_id: 1
ticket_id: 2
ticket_id: 3
attr
ticket_id: 1
attr_type: 1
attr_val: Foo
ticket_id: 1
attr_type: 2
attr_val: Bar
ticket_id: 1
attr_type: 3
attr_val: Egg
ticket_id: 2
attr_type: 2
attr_val: Spam
结果应该是:
ticked_id: 1
attr_val1: Foo
attr_val2: Bar
attr_val3: Egg
ticked_id: 2
attr_val1: NULL
attr_val2: Spam
attr_val3: NULL
ticked_id: 3
attr_val1: NULL
attr_val2: NULL
attr_val3: NULL
我尝试左加入 attr 表 3 次,但无法弄清楚如何通过 attr_type 安排输出
【问题讨论】:
标签: mysql sql group-by left-join