MySQL: Comment puis-je joindre à la même table plusieurs fois?

J'ai deux tables ticket et attr. Tableau ticket a ticked_id champ et plusieurs autres domaines. Tableau attr a 3 champs:

ticket_id - numeric
attr_type - numeric
attr_val - string

attr_type est fixe enum de valeurs. Par exemple, il peut être 1, 2 ou 3.

J'ai besoin de faire une requête, dont le résultat sera de 4 colonnes:

ticket_id, attr_val pour attr_type=1, attr_val pour attr_type=2, attr_val pour attr_type=3

Si il n'y a pas de valeur correspondante pour attr_type dans attr table, alors la valeur NULL doit être indiqué dans la colonne correspondante.

Exemple:

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

le résultat devrait être:

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

Je me suis laissé tentée de rejoindre attr tableau 3 fois, mais ne peut pas comprendre comment organiser une sortie par attr_type

InformationsquelleAutor rmflow | 2012-09-24