6
SELECT p.id, p.title, p.uri, 'post' AS search_type
FROM `posts` AS p
WHERE title LIKE "%logo%"
UNION ALL
SELECT p.id, p.title, p.uri, 'tag' AS search_type
FROM posts AS p
INNER JOIN post_tags AS pt ON pt.post_id = p.id
INNER JOIN tags AS t ON pt.tag_id = t.id
WHERE t.title LIKE "%logo%"
UNION ALL
SELECT p.id, p.title, p.uri, 'category' AS search_type
FROM posts AS p
INNER JOIN post_categories AS pc ON pc.post_id = p.id
INNER JOIN categories AS c ON pc.category_id = c.id
WHERE c.title LIKE "%logo%"
GROUP BY p.id
LIMIT 30
我想組帖子的ID,所以我不返回重複的搜索結果,但由於某些原因,有重複,甚至當我使用GROUP BY p.id
。有人能告訴我我做錯了什麼嗎?MySQL的 - 與UNION ALL和GROUP BY搜索
你只需要每p.id一個結果,無論搜索類型的? – 2010-10-11 10:25:40
嘿馬克,不,我想要所有的結果。 search_type只允許我定義搜索結果來自哪裏(發佈,標籤或類別)。 – Torez 2010-10-13 21:59:35