webForumDet fria alternativet
Logga in / Bli medlem

Urval ur databas

Databaser & SQL

3 svar · 319 visningar · startad av Hyzac

Medlem sedan mars 200475 inlägg
Trådstart#1

Jag håller på med ett projekt som rör drinkar och drinkrecept. Där ska man från en sida kunna ange vilka ingredienser man har hemma i en checkboxlista och få drinkförslag grundat på dessa val.

Det jag har lite problem med att fundera ut är hur jag ska plocka ut de drinkar som man kan göra. Alla ingredienser i en drink måste ju vara med på den lista man gjort men kombinationerna kan ju skilja sig helt. Hur gör man en förfågan till en databas med den grunden?

Den tabell som man hämtar ifrån har kolumnerna drinkId och ingrediensId och ser då ut tex drinkId: 2 / ingrId: 3, drinkId: 2 / ingrId: 8 om ni förstår vad jag menar.

Medlem sedan dec. 200012 464 inlägg
#2
select drinkid
from t as q
where ingrid in (<lista>)
group by drinkid
having count(*) = 
  (select count(*)
      from t
    where t.drinkid = q.drinkid)
Medlem sedan mars 200475 inlägg
#3

funkade perfekt, tack så mycket.

Medlem sedan mars 200475 inlägg
#4

Jag stötte tyvärr på problem när jag försökte utöka sql-satsen lite. Jag skulle nämligen vilja få med namnet på drinken som ligger i en annan tabell: Drink. Jag försökte få till det med en inner join men det strulade på grund av det som sparas som q. Finns det någon möjlighet att få med namnet oxå kanske?

259 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)