Hent status fra anden tabel
HejJeg har tre tabeller.
Tabel 1 Ordren (order) - Indhold:
id
name
mv...
Tabel 2 Ordre status (order_actions) - Indhold:
id
order_id
action_id
Tabel 3 Status oplysninger (actions) - Indhold:
id
name
order
Tabel 2 indeholder ordrens status fx:
1, 1, 1
2, 1, 2
3, 1, 3
Tabel 3 indeholder informationer omkring de forskellige ordre status fx:
1, Tilbud oprettet, false
2, Ordre oprettet, true
3, Email sendt til kunden, NULL
Altså en ordre har en række status oplysninger (tabel 2) og disse status oplysninger er uddybet med titel/navn i tabel 3. I tabel 3 er der også et ENUM('true','false') som angiver status på ordre. Hvis der IKKE optræder et 'true' på noget tidspunkt i ordre historikken er det ikke en ordre endnu, men blot et tilbud. NULL er også en mulighed, men det betyder blot at denne status kan bruges både på tilbud og ordre, altså den bestemmer for så vidt ikke hvad status er.
Jeg skal bruge en sætning som fortæller om der er tale om en ordre eller et tilbud. Jeg har lavet noget ala:
SELECT o.*, IF(oa.order IS NULL, 'false', oa.order) AS order_status FROM ((orders o LEFT JOIN order_actions oa ON oa.order_id = o.id) LEFT JOIN actions a ON a.id = oa.action_id) ORDER BY oa.order ASC, LIMIT 0,1
Ovenstående virker ikke optimalt, da NULL kommer før 'true' ved ASC sortering og 'false' kommer først ved DESC sortering (naturligvis :)). Men jeg skal altså have et output som fortæller om det er et tilbud eller ordre. Hvis 'true' på noget tidspunkt optræder i ordre historikken er det en ordre, hvis ikke er det blot et tilbud.
Håber det giver mening...
På forhånd tak...