webForumDet fria alternativet

Ta ut poster som delar samma taggar

2 svar · 1 292 visningar · startad av shiner

shinerMedlem sedan apr. 20112 inlägg
#1

Hej,

Här kommer en SQL-fråga:

Jag kör just nu med följande system för taggar;

s_tags
tag_id, tag_name

s_items
...

s_item_tags
id, tag_id, item_id

Alla taggar som finns är skapade i s_tags och sen kopplar jag dem till alla items i s_item_tags med varsin rad - no problems.

Så här kan det se ut:

s_items_tags
item_id | tag_id
700 | 10
700 | 20
701 | 10
701 | 20
702 | 10
702 | 30

Så om jag vill få ut enbart poster som använder BÅDE tag 10 och 20, så skulle det bara bli 700 och 701 kvar i listan.

Enklaste och mest logiska (?) hade ju varit om SELECT * FROM s_items_tags WHERE tag_id=10 AND tag_id=20 hade fungerat, men det gör ju inte det.

Någon som har en lösning? Gruppera eller joina på nåt vänster?

Tack

LarsGMedlem sedan dec. 200012 464 inlägg
#2
select item_id
  from s_items_tags
 where tag_id in (10,20)
 group by item_id
having count(*) = 2
shinerMedlem sedan apr. 20112 inlägg
#3

Tack Lars,

having count(*) löste allt!

133 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)