I have two tables ticket and attr. Table ticket has ticked_id field and several other fields. Table attr has 3 fields:
ticket_id - numeric
attr_type - numeric
attr_val - string
attr_type is a fixed enum of values. For example, it can be 1, 2 or 3.
I need to make a query, the result of which will be 4 columns:
ticket_id, attr_val for attr_type=1, attr_val for attr_type=2, attr_val for attr_type=3
If there is no corresponding value for attr_type in attr table then NULL value should be shown in corresponding column.
ticket table :
| ticket_id |
|---|
| 1 |
| 2 |
| 3 |
attr table :
| ticket_id | attr_type | attr_val |
|---|---|---|
| 1 | 1 | Foo |
| 1 | 2 | Bar |
| 1 | 3 | Egg |
| 2 | 2 | Spam |
Expected output :
| ticket_id | attr_val1 | attr_val2 | attr_val3 |
|---|---|---|---|
| 1 | Foo | Bar | Egg |
| 2 | null | Spam | null |
| 3 | null | null | null |
I tried left joining attr table 3 times, but cannot figure out how to arrange output by attr_type
You need to use multiple
LEFT JOINs:Here is an example: SQL Fiddle.