webForumDet fria alternativet

Exkludera kategorier

Databaser & SQL

1 svar · 171 visningar · startad av Del Pero

Medlem sedan feb. 20003 785 inlägg
Frågan#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! :)

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)