【发布时间】:2010-06-24 07:38:21
【问题描述】:
把我的问题写成简短的形式有点困难,所以如果标题没有意义,我深表歉意。
不管怎样,问题来了:
$query = '
SELECT issues.*, comments.author AS commentauthor, favorites.userid AS favorited FROM issues
LEFT JOIN comments ON comments.issue = issues.id AND comments.when_posted = issues.when_updated
LEFT JOIN favorites ON favorites.ticketid = issues.id AND favorites.userid = \'' . $_SESSION['uid'] . '\'
' . $whereclause . '
ORDER BY issues.when_updated ' . $order;
不要介意它是 PHP,因为我 不 寻求 PHP 帮助。
查询检索到一堆issues,我想做的是获取favorites 的行数,其中favorites.ticketid 匹配issues.id。我使用LEFT JOIN favorites 不是为了得到我刚才提到的内容,而是为了获取客户是否喜欢这个问题,因此是favorites.userid AS favorited 部分。
我已尝试执行以下操作:(为了便于阅读,我一次将其以项目符号形式表示)
- 复制现有的
LEFT JOIN favorites并从副本中删除用户 ID 检查 - 将
, COUNT(favorites.ticketid) AS favoritescount添加到SELECT部分 - 将
AS favorited添加到原始LEFT JOIN以及将favorites.userid更改为favorited.userid
通过该尝试,我的查询最终只返回一行。
【问题讨论】: