jag har två tabeller en som heter spel och en som heter fel. I spel finns tre fält id, namn, demo och i fel finns id och spel_id. Hur gör jag för att plocka ut id, namn och demo från spel där demo är något och id finns inte i någon spel_id i fel. Går det?
Normalt så skulle man skriva en sådan SQL-fråga som
select *
from spel
where demo = 'abc'
and id not in (select spel_id
from fel)
Nu finns ju inte den konstruktionen i MySQL och jag ser inget sätt att skriva om den. Den enda (tråkiga) lösningen jag ser är att plocka upp spel_id från fel och bygga in dom i sqlsatsen.
select distinct spel_id from fel
select * from spel
where demo = 'abc'
and id not in (1,2,3)
------------------ essentitia preter non sans multiplicandum
Finns några tips i manualen om hur man i en del fal kan komma runt denna begränsning. I det här fallet skulle det väl kunna bli någonting i stil med (har ej testat följande så jag är inte säker på att det fungerar):
SELECT spel.*
FROM spel
LEFT JOIN fel
ON spel.id = fel.spel_id
WHERE spel.demo = 'abc'
AND fel.spel_id IS NULL