我有两张表,如下面
表1:的营
id --- user_id -- title
1 ----- 101 ----- abc
2 ----- 107 ----- xyz
3 ----- 111 ----- xmp
4 ----- 101 ----- pop
5 ----- 101 ----- xza
6 ----- 107 ----- xvc
表2:的 EXP
id --- camp_id ---- view --- check --- cost
1 ------ 1 -------- 5 ------- 2 ------ 3
2 ------ 1 -------- 10 ------ 3 ------ 6
3 ------ 1 -------- 15 ------ 4 ------ 3
4 ------ 3 -------- 7 ------- 2 ------ 2
5 ------ 4 -------- 9 ------- 1 ------ 1
6 ------ 4 -------- 8 ------- 1 ------ 2
7 ------ 6 -------- 7 ------- 2 ------ 2
8 ------ 5 -------- 9 ------- 1 ------ 1
9 ------ 5 -------- 9 ------- 3 ------ 5
记录user_id 101 。我需要他的输出,如下所示。 view = user_id 101的视图总数(表示camp_id 1),用于标题abc。同样检查是每个标题下的支票总和,费用是每个标题下的费用总和。
title---view---check---cost
abc ---- 30 --- 9 ----- 12
pop ---- 17 --- 2 ----- 3
xza ---- 18 --- 4 ----- 6
我的代码:
SELECT c.title as t,SUM(e.view) as v,SUM(e.check) as ch,SUM(e.cost) as co
FROM camp c,exp e WHERE c.user_id='$log_id' AND e.camp_id=c.id
GROUP BY t
显示错误。如果有些更改然后显示所有标题但查看检查成本相同的每个油炸。
请帮忙
答案 0 :(得分:0)
我相信以下是你所追求的。您需要正确地将两个表连接在一起。此外,您只能在同一查询中使用一次别名。您不止一次引用了c
。
SELECT c.title,
SUM(e.view) AS viewSum,
SUM(e.check) AS checkSum,
SUM(e.cost) AS costSum
FROM camp AS c
INNER JOIN exp AS e
ON c.id = e.camp_id
WHERE c.user_id = 101
GROUP BY c.title