Ben diğer etiketleri bağlantılı olabilir etiketleri bir tablo var ve ben "özyinelemeli" düzenlemesi amacıyla etiketleri seçmek istiyorum. Bir arama yapıldığında, biz hemen (1-level) sonuçları almak ve yeterince kesin maçlar düzeyinde 1 olmasaydı biz her zaman etiketleri olursa olsun bir listesi var, böylece daha sonra 5-seviyeleri söylemek için aşağı taşımak böylece .
Ben yeterli sonuç elde edene kadar ben birden fazla sorgular yapma ile bu cezası yönetebilirsiniz, ama kesinlikle daha iyi, optimize edilmiş, yolu bir gezi sorgu ile var?
Any tips will be appreciated. Thanks!
Sonuçlar:
tagId, tagWord, child, child tagId
'513', 'Slap', 'Hog Slapper', '1518'
'513', 'Slap', 'Corporal Punishment', '147'
'513', 'Slap', 'Impact Play', '1394'
Sorgu:
SELECT t.tagId, t.tagWord as tag, tt.tagWord as child, tt.tagId as childId
FROM platform.tagWords t
INNER JOIN platform.tagsLinks l ON l.parentId = t.tagId
INNER JOIN platform.tagWords tt ON tt.tagId = l.tagId
WHERE t.tagWord = 'slap'
Tablo Düzenleri:
mysql> explain tagWords;
+---------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------+------+-----+---------+----------------+
| tagId | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| tagWord | varchar(45) | YES | UNI | NULL | |
+---------+---------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
mysql> explain tagsLinks;
+----------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| tagId | bigint(20) unsigned | NO | | NULL | |
| parentId | bigint(20) | YES | | NULL | |
+----------+---------------------+------+-----+---------+-------+
2 rows in set (0.00 sec)