kar*_*108 1 mysql variables select
我试图将特定字段的总和存储在一个变量中,例如@data := sum(field_name)MySQL Select 语句。
以下是我的查询的确切示例:
SELECT a.id, @data1:=sum(b.amount) amount, @data1 as returned_val
FROM tbl_table1 a
LEFT JOIN tbl_table2 b ON b.acount_id=a.id
GROUP BY a.id
Run Code Online (Sandbox Code Playgroud)
请注意,我将 存储sum(b.amount)到一个变量@data1并尝试将其显示在另一行中,但从未按我的预期工作。
有没有其他方法可以做到这一点?
不要在带有 GROUP BY 子句的 SELECT 语句中使用变量。
从文档:
注意:在 SELECT 语句中,每个表达式仅在发送到客户端时才计算。这意味着在 HAVING、GROUP BY 或 ORDER BY 子句中,您不能引用涉及在 SELECT 列表中设置的变量的表达式。
使用子查询来实现这一点 -
SELECT t.id, @data1:=t.amount, @data1 AS returned_val FROM (
SELECT a.id, SUM(b.amount) amount
FROM tbl_table1 a
LEFT JOIN tbl_table2 b ON b.acount_id=a.id
GROUP BY a.id
) t
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5970 次 |
| 最近记录: |