And*_*rew -3 php mysql sql codeigniter
实际上数学似乎并没有加起来.
这是我正在使用的查询和我正在尝试访问的2个表(包含所有真实数据).
SQL中的这个查询拉动Steve Smith了27个和27个计数amount.它应该是17.在同一个查询中它显示John Smith有4个和2个计数amount.
SELECT
user.*,
IFNULL(SUM(collection.amount), 0) AS usertotal,
COUNT(collection.amount) AS userunique
FROM user
LEFT JOIN collection
ON user.id = collection.userid
GROUP BY collection.amount`
Run Code Online (Sandbox Code Playgroud)
表1(命名user):
id | firstname | lastname | username | email
1 | Steve | Smith | SteveS | Steve@Smith.com
2 | John | Smith | JohnSmith| John@Smith.com
Run Code Online (Sandbox Code Playgroud)
表2(命名collection):
id|userid|carid |amount
1 1 74 1
10 2 130 1
11 2 48 1
12 2 414 1
13 2 415 1
14 2 66 1
15 2 404 1
16 2 57 2
17 2 331 1
18 2 264 1
19 2 325 1
20 2 51 2
21 2 185 1
24 1 168 1
25 1 11 1
26 1 315 1
27 1 51 1
28 1 210 1
29 1 433 1
30 1 434 1
31 1 460 1
32 1 75 1
33 1 238 1
34 1 226 1
35 1 396 1
36 1 174 1
37 1 12 1
38 1 328 1
39 1 4 1
id| UN | Amount
1 | 4 | 457
2 | 4 | 28
3 | 2 | 234
4 | 1 | 235
5 | 2 | 1
Run Code Online (Sandbox Code Playgroud)
我需要一个查询来获取用户名的完整列表,以及user.id和collection.UN之间的内连接(在金额列上使用sum和count)
我不知道SQL查询,无法弄明白我的生活.救命?
谢谢,
SELECT
user.UN as username,
IFNULL(SUM(collection.Amount), 0) AS sum,
COUNT(collection.Amount) AS count
FROM user
LEFT JOIN collection
ON user.id = collection.UN
GROUP BY user.id
Run Code Online (Sandbox Code Playgroud)
您说您想要使用INNER JOIN,但这不会显示那些在集合表中没有记录的用户.所以不是我用LEFT JOIN,使用户的整个列表将被退回,并且COUNT和SUM它们的量为0,如果他们没有任何.
| 归档时间: |
|
| 查看次数: |
2567 次 |
| 最近记录: |