【发布时间】:2014-03-26 02:32:04
【问题描述】:
我有一个显示搜索结果的查询,我想再添加一个字段来检查每个结果是否在另一个表中显示为收藏结果。为简单起见,由于大多数搜索参数只添加了一些 JOIN 和 WHERE,对我的问题并不重要,让我们考虑有一个 results 表,其中包含所有正确的字段:
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(result_favourites 中至少有一行 userid 和 resultid 匹配 r.id 和 userid = 1)或 0(没有)。
我尝试使用COUNT(rf.userid) AS is_favourited,但没有成功。欢迎任何帮助!
【问题讨论】: