Mysql 是否在不影响返回行的情况下对联接列进行行计数?

Mysql 是否在不影响返回行的情况下对联接列进行行计数?,mysql,join,count,Mysql,Join,Count,把我的问题简明扼要地说出来有点困难,所以如果标题没有意义,我道歉 无论如何,问题是: $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

把我的问题简明扼要地说出来有点困难,所以如果标题没有意义,我道歉

无论如何,问题是:

 $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帮助

该查询检索一系列问题,我想做的是获取具有favorites.ticketid匹配issues.id的收藏夹的行数。我使用LEFT JOIN favorites并不是为了获取我刚才提到的内容,而是为了获取客户端是否喜欢该问题,从而将part favorites.userid作为favorited

我试着做了以下几件事:为了便于阅读,我把它放在项目符号的形式中

复制现有的左连接收藏夹并从副本中删除用户id检查 将COUNTfavorites.ticketid作为FavoriteCont添加到“选择”部分 将作为favorited添加到原始左连接,并将favorites.userid更改为favorited.userid 通过这种尝试,我的查询只返回一行

SELECT issues.*,
       comments.author AS commentauthor,
       favorites.userid AS favorited,
       (
           SELECT COUNT(favorites.id)
           FROM favorites
           WHERE ticketid = issues.id
       ) AS numfavorites
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 = ?uid
这应该行得通,我只是使用一个子查询来获取收藏的数量