Tor*_*rez 6 mysql sql database union group-by
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
Run Code Online (Sandbox Code Playgroud)
我正在尝试对帖子ID进行分组,因此我不会返回重复的搜索结果,但由于某些原因,即使我使用了该搜索结果也存在重复GROUP BY p.id
.有人能告诉我我做错了什么吗?
这是一个不适用于MySQL的示例:
SELECT Column1, SUM(Column2) AS Column2Total
FROM
(
SELECT Column1, Column2 FROM Table1
UNION ALL
SELECT Column1, Column2 FROM Table2
) AS UnionTable
GROUP BY Column1
Run Code Online (Sandbox Code Playgroud)