gpt4 book ai didi

mysql - 在不影响返回行的情况下对 JOINed 列进行行计数?

转载 作者:行者123 更新时间:2023-11-30 23:40:58 26 4
gpt4 key购买 nike

把我的问题写成简短的形式有点困难,所以如果标题没有意义,我深表歉意。

无论如何,这是问题所在:

 $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 favoritescountSELECT
  • 添加AS favorited到原文LEFT JOIN以及更改 favorites.useridfavorited.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

这应该可行,我只是使用子查询来获取收藏夹的数量

关于mysql - 在不影响返回行的情况下对 JOINed 列进行行计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3107993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com