Nasıl MySQL ve PHP kullanarak MySQL iki tablo arasında saymak?

2 Cevap php

Örneğin, nasıl ben etiketi HTML a_id sütununda görüntülenir kaç kez saymak ve sonra da alfabetik sırayla a_id kolona ilgili tüm etiketlerini görüntüleyebilirsiniz.

Burada MySQL masaları

CREATE TABLE a_tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag_id INT UNSIGNED NOT NULL,
a_id INT UNSIGNED NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);

İşte nedir MySQL tabloları ise

TABLE tags
id		tag
1		HTML
2		HTML
3		CSS
4		PHP
5		HTML

TABLE a_tags
id		tag_id		a_id
1		1			3
2		2			2
3		3			3
4		4			3
5		5			3

Ve İşte kodudur.

$result = mysql_query("SELECT a_tags.*, tags.* 
					   FROM a_tags 
					   INNER JOIN tags ON tags.id = a_tags.tag_id 
					   WHERE a_tags.users_a_id=3
					   ORDER BY users_a_id DESC");

2 Cevap

Woudlnt

SELECT * FROM `a_tags` WHERE a_id = (SELECT `id` FROM `tags` WHERE `tag` = 'HTML')

çalışır?

Düzenleme: Bu bunu yapmak istediğinizi olmayabilir. Eğer soruya açıklık olsaydı, o yararlı olurdu.

Ben oldukça yabancı anahtarları nelerdir görmek ama a_tags.a_id haritalar sonra tags.id için varsayarak bu kalkmayın.

SELECT tags.tag,COUNT(a_tags.a_id) FROM a_tags
JOIN tags ON a_tags.a_id = tags.id
GROUP BY a_tags.a_id