【发布时间】:2017-04-23 13:04:40
【问题描述】:
我有一个包含链接到某个帖子的关键字的数据库::
Table word_index: word_id - keyword
Table word_rel: word_id - postId - unique_id
Example word_index:
1 - keyword1
2 - keyword2
3 - keyword3
...
Example word_rel:
1 - 1 - 1
2 - 1 - 2
3 - 2 - 3
...
现在用户可以搜索一个或多个关键字(就像 Google 一样)。
我使用 SQL 查询,这很好用。但是,当他们使用多个关键字时,我希望结果更严格,并且只显示两个关键字都匹配的结果。现在查询返回所有匹配关键字之一的帖子。
SELECT g.postName
FROM
(SELECT gr.postId FROM word_index wi INNER JOIN word_rel gr ON wi.word_id =
gr.word_id (keyword1,keyword2) ) prr
INNER JOIN posts g ON g.postId = prr.postId
GROUP BY g.postId DESC
所以FROM (SELECT ...) 部分中的Select 选择了所有匹配项。之后,它应该只显示与这两个关键字而不是两个关键字之一的所有匹配项。
我可以在最后的GROUP BY 部分执行此操作还是必须更改所有内容?
【问题讨论】:
标签: php mysql group-by inner-join