php - MYSQL 查询,对所有值求和,同时还使用连接表选择一个值
问题描述
在获取一篇文章时,我想从另一个表中获取喜欢的总和,同时检查当前用户是否喜欢这篇文章。
要获得文章和喜欢的总和,我可以这样做:
"SELECT a.id AS aid,a.title,a.slug,SUM(l.likes) AS likes
FROM articles `a`
LEFT JOIN likes `l`
ON l.articleid = a.id
WHERE a.id = 33";
如何同时获取当前用户是否喜欢该文章。
用户是否喜欢这篇文章的逻辑是
"SELECT like FROM likes where articleid = 33 AND userid = 22"
如果行数 == 0,则用户不喜欢该文章。
但是,我不确定如何将其集成到第一个查询中。我认为它可能涉及使用 CASE,但这超出了我对 SQL 的熟悉程度。感谢您的任何建议。
解决方案
SELECT a.id AS aid,
a.title,
a.slug,
SUM(l.likes) AS likes,
SUM(l.userid = 22) AS is_liked
FROM articles `a`
LEFT JOIN likes `l` ON l.articleid = a.id
WHERE a.id = 33
推荐阅读
- pandas - 插值连续数
- c# - 将内部联接 Datagridview 导出到 Excel
- python - Mypy 错误:“重载的函数签名 2 永远不会匹配:签名 1 的参数类型相同或更宽”
- node.js - 在节点 js 中将 eval 选项设置为 true 时传递 workerData
- flutter - 我可以在下面的颤动代码中删除 const 吗?
- statistics - 使用 Fisher 精确检验、卡方检验测试独立性时的双边/单边特定目的
- sql - 如何在 SQL Server 中形成自定义 Json 对象
- c# - 我可以对已经定义了项目源的 DataGrid 中的复选框使用不同的项目源吗?
- flutter - 如何在 Flutter 中打开一次 ObjectBox 并跨多个页面访问
- wordpress - 为什么服务器在 WordPress 网站上找不到请求的页面?