Siz iki tablo, questions
ve tags
arasında veri bölünmüş ve bir questions_tags
katılmak tablosunu kullanarak bunları ilgili olmalıdır.
CREATE TABLE questions (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
url TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE questions_tags (
question_id INT UNSIGNED NOT NULL REFERENCES questions,
tag_id INT UNSIGNED NOT NULL REFERENCES tags
);
Ben bu yüzden onu atlanır için özgün tabloda count
sütun ne olduğundan emin değilim.
Eğer kullanabileceğiniz Yukarıdaki tabloları kullanarak belirli bir etiketi veya bir sorunun tüm etiketleri ile tüm soruları bulmak için katılır.
Edit
Eğer böyle bir şey olabilir her etiket için sayımını almak için:
SELECT tag,
count(*) AS c
FROM tags
GROUP BY tag;
Edit
Tüm sorular için tüm etiketleri sayıları elde etmek için bunu:
SELECT t.tag,
q.question_id,
count(*) AS c
FROM tags AS t,
questions_tags AS qt
questions AS q
WHERE t.id = qt.tag_id
AND qt.question_id = q.id
GROUP BY t.id, q.id;
Eğer belirli etiketler veya sorularınız için yalnızca sayılmasını istiyorsanız ek WHERE
maddeler eklemeye.
Note: Yukarıdaki tüm SQL denenmemiştir.