mysql - 如何计算内部连接表中的行数
问题描述
我正在使用交叉引用表提取解决方案的所有信息。
SELECT
s.*, u.forname, u.surname, u.email, u.tel, p.type
FROM _user_solution s
INNER JOIN _users u
ON s.uid = u.uid
INNER JOIN _payment_plans p
ON p.pid = s.payment_plan_type
效果很好,我的结果符合预期。但是,我有另一个表,其中包含该解决方案的任务,每个任务都有一个进度。我想指出该解决方案有多少任务,我尝试过:
SELECT
s.*, u.forname, u.surname, u.email, u.tel, p.type,
(SELECT COUNT(*) FROM t WHERE t.progress < 100 AS task)
FROM _user_solution s
INNER JOIN _users u
ON s.uid = u.uid
INNER JOIN _payment_plans p
ON p.pid = s.payment_plan_type
INNER JOIN _solution_tasks t
ON s.sid = t.assigned_for_solution
但我收到此错误:
您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 3 行的“AS 任务”附近使用正确的语法 FROM _user_solution s INNER JOIN _users u ON s.uid = u.uid'
任何关于我如何计算该解决方案不完整的任务的任何想法都将不胜感激。
解决方案
您需要将AS task
别名部分移到子查询之外;在右括号之外。
SELECT
s.*, u.forname, u.surname, u.email, u.tel, p.type,
(SELECT COUNT(*) FROM _solution_tasks WHERE progress < 100) AS task
FROM _user_solution s
INNER JOIN _users u
ON s.uid = u.uid
INNER JOIN _payment_plans p
ON p.pid = s.payment_plan_type
INNER JOIN _solution_tasks t
ON s.sid = t.assigned_for_solution
推荐阅读
- android - 什么是移动设备应用 URI 方案要求/标准?
- html - 是否可以使“a”元素占据包含元素的全部高度和宽度
- reactjs - 如何在单独的文件中从子组件(菜单项)调用父组件方法(关闭菜单)?
- codeigniter - Codeigniter Route 无法在实时服务器上运行,但可以在 localhost 上运行
- android - 无法解析配置 ':shared_preferences:lintClassPath' 的所有文件
- python - Tensorflow 1 到 Tensorflow 2 的转换代码 - detection_graph.as_default() 属性错误
- c# - 从 dsharp c# 中的文本通道获取所有用户
- c# - 多种混合形状的麦克风输入
- javascript - AngularJS:使用 $templateCache 自定义 ui-select 模板
- vue.js - VueJS ReferenceError:提交注册表时未定义结果