Visning afhængig af anden tabel (del 2)
HejJeg stillede forleden dette spørgsmål: http://www.eksperten.dk/spm/865170
For at resumere har jeg følgende to tabeller:
Tabel 1: orders_action (oa):
id, order_id, action_id
Tabel 2: orders (o):
id, payment_name, payment_address etc.
Tabel 1 indeholder en række status oplysninger om ordren i tabel 2.
Jeg skal således bruge en sql sætning der viser alle de ordre, hvor fx action_id = 14 IKKE indgår.
Jeg fik et godt svar af arne_v, og det er som følger:
SELECT * FROM orders WHERE id NOT IN (SELECT order_id FROM orders_actions WHERE action_id=14)
Jeg skal dog have bygget lidt videre på denne sætning, da jeg har behov for at de resultater der skal fremkomme SKAL indeholde action_id 4.
Umiddelbart har jeg prøve at lave følgende sætning:
SELECT * FROM orders o LEFT JOIN orders_actions oa ON oa.order_id = o.id WHERE ((oa.action_id = 4) AND (o.id NOT IN (SELECT order_id FROM orders_actions WHERE action_id=14)) GROUP BY o.id;
Men så er det som om at SUB selecten bliver sat ud af spil... I hvertfald så viser den resultater uanset om 14 indgår eller ej.
Nogle idéer?!?