Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从表中获取特定用户的所有行以及总和_Mysql_Sql_Mysqli - Fatal编程技术网

Mysql 从表中获取特定用户的所有行以及总和

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

我有一个名为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 ) 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万用户,上述查询会影响性能吗?非常感谢您的回答,这正是我想要的,我只是有一个疑问,它会影响性能吗性能..非常感谢你的回答这就是我想要的我只是有一个疑问它会影响性能。。??