我有一個使用參考表tags_titles和tags_blogs來比較保存標籤叫標籤表下面的查詢。標籤本身保存在t.label列中。Mysql的內部連接管理計數()行爲
我的問題是,有時它count()過多total_matches。通常可以在tags_titles和tags_blogs中找到標記。有沒有辦法讓內部連接相互排斥或其他解決方案,以便與t.label列的實際匹配計數是準確的?
SELECT b.blog_id AS id, b.title AS title, b.body AS body, COUNT(t.label) AS total_matches, b.creation_time AS creation_time, '1' AS type
FROM tags AS t
INNER JOIN tags_titles AS tt
ON tt.tag_id = t.tag_id
INNER JOIN tags_blogs AS tb
ON tb.tag_id = t.tag_id
INNER JOIN blogs AS b
ON tt.blog_id=b.blog_id OR tb.blog_id=b.blog_id
WHERE t.label IN ($in) AND b.title IS NOT NULL
GROUP BY id, title, body, creation_time, type
你能提供的小提琴例子,你想要的結果集 –
我會嘗試從來沒有使用過小提琴 –
之前儘量把你的查詢中使用的表模式,然後構建模式和運行查詢那裏,讓你的提琴的http:// sqlfiddle.com/ –