我有两个表,分别是post和info,每个表可以包含多行信息。
表结构如下:
post (int id, int published, varchar title)
info (int id, text content, int post_id)
我想在信息内进行简单的全文搜索,并返回帖子列表,但我希望帖子行在结果列表中仅显示一次,即使它多次在信息内找到查询文本,< / p>
我当前的查询看起来像这样,但是它仍然返回多个具有相同ID的帖子行,
SELECT
DISTINCT(post.id),
post.title,
info.content
FROM
post, info
WHERE
info.post_id = post.id
AND published = 1
AND MATCH(info.content) AGAINST('cucumber')
答案 0 :(得分:0)
在mysql的distingle子句中,行适用于行,而非单列值
如果仅需要结果,则应使用聚合功能并按
分组 SELECT
post.id,
min(post.title),
min(info.content)
FROM post
INNER info ON info.post_id = post.id
AND published = 1
WHERE MATCH(info.content) AGAINST('cucumber')
group by post.id