2016-04-18 6 views
1

Ich habe drei TabellenMySQL get beliebtesten Tags ids Kombination mit ihren Zählungen

1.tbl_tag

id int NOT NULL AI PK 
name VARCHAR(50) NOT NULL 

Inhalt

id name 
1 lifestyle 
2 store 
3 car 
4 luxury 
5 classy 
6 boy 
7 girl 
8 man 
9 woman 
10 strong 
etc ... 

2.tbl_media

id int NOT NULL AI PK 
name VARCHAR(50) NOT NULL 

Inhalt

id name 
1 one 
2 two 
3 three 
4 four 
5 five 
6 six 
7 seven 
8 eight 
9 nine 
10 ten 
etc... 

3. tbl_media_tag

id int NOT NULL AI PK 
media_id int NOT NULL -> relationship with tbl_media 
tag_id int NOT NULL -> relationship with tbl_tag 

Inhalt

id media_id tag_id 
1 1 4 
2 1 3 
3 4 3 
4 5 2 
5 6 8 
6 4 4 
7 8 7 
8 7 4 
9 7 3 
10 6 2 
11 8 4 
12 8 3 
etc... 

möchte ich mit LIMIT beliebtesten Tags (tag_id) Kombinationen erhalten, zum Beispiel beliebtesten Top-Ten-Tags Kombination

Ich möchte ähnliche

4, 7, 3 (75) 
4, 8 (42) 
1, 7, 9, 10 (28) 
7, 8, 9 (10) 
7, 2 (2) 
Ergebnis erhalten
+0

Können Sie die Zahlen aus dem Ergebnis in der entsprechenden Zeichenfolge von tbl_tag ersetzen, so dass es klarer ist zu wissen, welches Ergebnis Sie erwarten? –

+0

Wenn wir es auf diese Weise lösen können, wird es sein groß. Aber wenn wir nicht können, kann ich meine Medientabelle ändern und Spalte ** Tags ** hinzufügen, in der ich Tagsansammlungsschnur ** (Auto, Lebensstil, Mädchen, Mann, etc ...) ** speichern werde. Und dann können wir unsere Frage auf diese Weise lösen - Wir werden versuchen, populärste Wortkombinationsformmedien, in ** Markenspalte zu finden, wir werden Ergebnis haben wie 'Auto, Leben, Stil (24) Mädchen, Lebensstil (12) Luxus, nobel, Geschäft, Lebensstil (7) etc ... ' –

Antwort

1
SELECT * 
FROM 
    (SELECT tag_sum, 
      COUNT(*) as tag_sum_count 
    FROM 
     (SELECT GROUP_CONCAT(DISTINCT tag_id 
          ORDER BY tag_id DESC 
          SEPARATOR ',') as tag_sum, 
       media_id 
     FROM tbl_media_tag mt 
     GROUP BY media_id) sub 
    GROUP BY tag_sum) sub2 
ORDER BY tag_sum_count DESC 
LIMIT 10 
+0

Vielen Dank STANISLAV, BRUDER! Tolles MySQL-Wissen! –

Verwandte Themen