我有一个显示搜索结果的查询,我想添加一个字段来检查每个结果是否显示为另一个表中的最佳结果。为了保持它的简单,因为大多数搜索参数的只添加一些JOIN和WHERE并没有我的问题很重要,让我们考虑不存在具有所有正确的字段results
表:MySQL检查结果是否被收录
id | title | description
而且result_favourites表:
userid | resultid
下面是MySQL数据库的查询,得到的结果(再次没有所有的简单搜索审核规定):
SELECT id, title, description FROM results
我要的是类似的东西(比方说用户#1):
SELECT r.id r.title, r.description, (something here) AS is_favourited
FROM results AS r
RIGHT JOIN result_favourites AS rf ON rf.resultid = r.id
WHERE userid = 1
随着is_favourited是是1(有与两个用户ID result_favourites至少一行和resultid匹配r.id和用户ID = 1)或0(没有)。
我试过使用COUNT(rf.userid) AS is_favourited
但没有奏效。欢迎任何帮助!
完美,这作品!我曾尝试过左和右,但是造成差异的原因是将userid = 1从WHERE移动到ON子句。出于某种原因在其中返回0结果的地方使用它。 – Davor