AsterixMedlem sedan dec. 1999483 inlägg 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?
------------------
/Emil Hesslow
LarsGMedlem sedan dec. 200012 464 inlägg 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
[Redigerat av LarsG den 01 mar 2001]
RobbanMedlem sedan dec. 19992 555 inlägg 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
------------------
Robban < robban@lipogram.com >
LarsGMedlem sedan dec. 200012 464 inlägg Ja, det funkar på det sättet. (Jag testade.) Bättre lösning än mitt alternativ.
------------------
essentitia preter non sans multiplicandum
AsterixMedlem sedan dec. 1999483 inlägg Det funkar utmärkt!
Jag tackar
------------------
/Emil Hesslow