1

我有两个如下表

表 1:营地

id --- user_id -- title
1 ----- 101 ----- abc
2 ----- 107 ----- xyz
3 ----- 111 ----- xmp
4 ----- 101 ----- pop
5 ----- 101 ----- xza
6 ----- 107 ----- xvc

表2:经验

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已登录。我需要他的输出,如下所示。视图 = 标题 abc 的 user_id 101(表示 camp_id 1)的视图总数。同样,支票是每个标题下的支票总和,成本是每个标题下的成本总和。

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

显示错误。如果发生一些变化,则显示所有标题,但每次煎炸时查看检查成本相同。

请帮忙

4

1 回答 1

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
于 2013-11-07T15:58:41.007 回答