Du vill alltså ha de objekt som inte har något tillbehör?
select <kolumner>
from objekt
where not exists
(select *
from tillbehor
where objekt.objektid = tillbehor.objektid)
Flyttas från ASP
8 svar · 538 visningar · startad av leniz
Hej!
Försöker skriva en kod som ska plocka fram träffar ur en tabell där det INTE finns någon förekomst av träffen i en annan tabell.
Alltså i TABELL 1 finns objekt som har ett idnummer (objektid), om det finns några tillbehör till objektet så lagras de i TABELL 2 där objektetd idnummer även finns, det är så jag kopplar ihop dem.
sql="select o.objektid, o.objektnamn, count(tillbehorid) as t.x from tillbehor as t inner join objekt as o on o.objektid=t.objektid where t.x=0"
Mvh Lena
Du vill alltså ha de objekt som inte har något tillbehör?
select <kolumner>
from objekt
where not exists
(select *
from tillbehor
where objekt.objektid = tillbehor.objektid)
Flyttas från ASP
Hej!
Ja precis, men det är lite mer villkor med också och fler tabeller med inner join emellan.
Så jag testade lägga till detta på slutet:
and not exists (select t.objektid from tillbehor as t inner join objekt as o on t.objektid=o.objektid)
Då får jag detta felmeddelande:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'exists (select
Kan jag inte använda inner join i de här satserna om det ska fungera?
Hej igen!
Testade givetvis din variant utan inner join i satsen mellan parentesen också men det ger samma felmeddelande.
Mvh Lena
Pröva:
select <kolumner>
from objekt
where <andra villkor> and objektid not in
(select objektid
from tillbehor)
Hej!
Tack för förslaget men det ger tyvärr detta felmeddelande:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select objektid from tillbehor)' at line 1
Exakt hur ser din SQL-fråga ut då?
Vilken version av MySQL använder du?
Felet låter som om du använder 4.0 (eller äldre) av Mysql, som inte har stöd för subselect.
select <kolumner>
from objekt
left join tillbehor
on objekt.objektid = tillbehor.objektid
where tillbehor.objektid is null
Toppen! Det här fungerade!
Stort tack och trevlig helg!