webForumDet fria alternativet

Hämta info med vissa villkor

Databaser & SQL

4 svar · 299 visningar · startad av Pedda

Medlem sedan juni 20006 031 inlägg
Frågan#1

Jag har problem med att hämta info från databasen som är en Access databas.

Tabellstruktur

modell
-------------
id
namn
...

tillbehor
-------------
id
ref_modell <-- referens till tabellen modell (id)
ref_kategori <-- referens till tabellen kategori (id)
...

Jag vill hämta id och namn från tabellen modell.
Från en listview som är multiselect hämtar jag först olika idnummer (ref_kategori) och vill då lista informationen från tabellen modell där samtliga idnummer (ref_kategori) ingår.
idnummren loopar jag in i en sträng och kan där lägga in så strängen blir t.ex "WHERE id = 1 AND id= 2" om det behövs.

Någon som har förslag på hur jag ska lösa det?

Medlem sedan dec. 200012 464 inlägg
#2
select * 
  from modell
 where id in
  (select ref_modell
     from tillbehor
  where ref_kategori in (<komma separerad lista med dina id-nummer>)
     group by ref_modell
     having count = <antal id nummer>)
Medlem sedan juni 20006 031 inlägg
#3

Ser ju bra ut, ska testa sen.

Har inte hört talas om "having count" innan men om det funkar så är det ju suveränt. Fungerar having count även i MsSQL och MySQL?

Medlem sedan dec. 200012 464 inlägg
#4

Jo om man använder rätt syntax så skall det fungera, dvs

select * 
  from modell
 where id in
  (select ref_modell
     from tillbehor
  where ref_kategori in (<komma separerad lista med dina id-nummer>)
     group by ref_modell
     having count[b](*)[/b] = <antal id nummer>)
Medlem sedan juni 20006 031 inlägg
#5

Funkade perfekt.
Tackar

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