Exkludera kategorier

Databaser & SQL

1 svar · 179 visningar · startad av Del Pero

Medlem sedan feb. 20003 785 inlägg
Trådstart#1

Jag har en query som ser ut såhär som jag inte får att fungera:
SELECT bknamn.id AS bknaID, bknamn.kategorinamn, bk.* FROM bildkategorier AS bknamn INNER JOIN bildkategori AS bk ON bknamn.id <> bk.kategori_id WHERE bk.bild_id=3222

Såhär ser tabellerna som jag kör emot ut:

bildkategorier
id | kategorinamn

bildkategori
id | kategori_id | bild_id

Vad jag är ute efter är att hämta de kategorinamn samt id från bildkategorier som inte redan finns i bildkategori tillsammans med bild_id 3222.

Om jag i min query ovan byter ut "<>" mot "=" får jag ju ut dom kategorinamn som finns i bildkategori med bild_id 3222.
Hur gör jag för att få det tvärtom? :)

Medlem sedan feb. 20003 785 inlägg
#2

emission @ MSN skrev:

SELECT bknamn.id AS bknaID, bknamn.kategorinamn FROM bildkategorier AS bknamn WHERE NOT EXISTS(SELECT 1 FROM bildkategori AS bk WHERE bknamn.id = bk.kategori_id AND bk.bild_id=3222)

Fungerar lysande! :)

251 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)