我在我的MYSQL數據庫中有不同的表,我需要創建一個SELECT查詢,在選擇一行之前檢查某些值。複雜的MYSQL選擇
它基本上是3表(新聞,標籤和news_tags)。
- 新聞包含有關新聞的信息。
- 標籤標籤信息。
- news_tags存儲新聞使用哪個標籤。
這裏有我的3個不同的表(簡化當然)
舉例說明:
消息:
id | status
1 | 1
2 | 1
3 | 0
標籤:
tag_id | tag_name
1 | name 1
2 | name 2
個
news_tags:
id | news_id | tag_id
1 | 1 | 1
2 | 1 | 2
3 | 2 | 1
4 | 3 | 1
5 | 3 | 2
現在,首先我想知道有多少次正在使用的每個標籤。 所以我想出了這個查詢
SELECT tags.tag_name, news_tags.tag_id, COUNT(*) as count
FROM news_tags
LEFT JOIN tags
ON tags.tag_id = news_tags.tag_id
GROUP BY news_tags.tag_id
ORDER BY count DESC
這給我下面的輸出
tag_name | count
name 1 | 3
name 2 | 2
現在我的問題是,我不想指望那些在news.status = 0
; 所以,如果我們看看我的例子,在news
表中id = 3
的行有status = 0
。 count
不應該生效news_tags
表中的news_id = 3
。
基本上所需的輸出應該是
tag_name | count
name 1 | 2
name 2 | 1
謝謝您的幫助。
能否請您提供'CREATE'和'INSERT'語句呢? –