Mysql 从表中获取特定用户的所有行以及总和
我有一个名为real_estate的表格,其结构和数据如下:-Mysql 从表中获取特定用户的所有行以及总和,mysql,sql,mysqli,Mysql,Sql,Mysqli,我有一个名为real_estate的表格,其结构和数据如下:- | id | user_id | details | location | worth | 1 | 1 | Null | Null | 10000000 | 2 | 1 | Null | Null | 20000000 | 3 | 2 | Null | Null | 10000000 我的问题如下: SELECT * , SUM( worth
| id | user_id | details | location | worth
| 1 | 1 | Null | Null | 10000000
| 2 | 1 | Null | Null | 20000000
| 3 | 2 | Null | Null | 10000000
我的问题如下:
SELECT * , SUM( worth ) as sum
FROM real_estate
WHERE user_id = '1'
我从这个查询中得到的结果是
| id | user_id | details | location | worth | sum
| 1 | 1 | Null | Null | 10000000 | 30000000
我希望结果是这样的
| id | user_id | details | location | worth | sum
| 1 | 1 | Null | Null | 10000000 | 30000000
| 2 | 1 | Null | Null | 20000000 | 30000000
有没有什么方法可以得到我想要的结果,或者我应该写两个不同的查询?
1获得价值的总和
2要获取该用户的所有行可以在子查询中进行求和,如下所示
SELECT * , (select SUM(worth) from real_estate WHERE user_id = '1' ) as sum
FROM real_estate WHERE user_id = '1'
您可以在这样的子查询中进行求和
SELECT * , (select SUM(worth) from real_estate WHERE user_id = '1' ) as sum
FROM real_estate WHERE user_id = '1'
您需要使用一个子查询来计算每个用户的总和,然后将子查询的结果与表联接:
SELECT real_estate.*, s.user_sum
FROM
real_estate INNER JOIN (SELECT user_id, SUM(worth) AS user_sum
FROM real_estate
GROUP BY user_id) s
ON real_estate.user_id = s.user_id
WHERE
user_id = '1'
但如果您只需要返回单个用户的记录,则可以使用以下方法:
SELECT
real_estate.*,
(SELECT SUM(worth) FROM real_estate WHERE user_id='1') AS user_sum
FROM
real_estate
WHERE
user_id='1'
您需要使用一个子查询来计算每个用户的总和,然后将子查询的结果与表联接:
SELECT real_estate.*, s.user_sum
FROM
real_estate INNER JOIN (SELECT user_id, SUM(worth) AS user_sum
FROM real_estate
GROUP BY user_id) s
ON real_estate.user_id = s.user_id
WHERE
user_id = '1'
但如果您只需要返回单个用户的记录,则可以使用以下方法:
SELECT
real_estate.*,
(SELECT SUM(worth) FROM real_estate WHERE user_id='1') AS user_sum
FROM
real_estate
WHERE
user_id='1'
按id分组
按id分组
它抛出了一个错误1064-您的SQL语法有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“select worth from real_estate WHERE user_id='1'from real_estate WHERE use”附近使用的正确语法。如果我有大约1000万用户,上述查询会影响性能吗?它抛出一个错误1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,查看第1行的“select worth from real_estate WHERE user_id='1 from real_estate WHERE use”附近使用的正确语法。如果我有大约1000万用户,上述查询会影响性能吗?非常感谢您的回答,这正是我想要的,我只是有一个疑问,它会影响性能吗性能..非常感谢你的回答这就是我想要的我只是有一个疑问它会影响性能。。??