我一直在寻找解决方案,有很多类似的问题,但没有一个有任何正确的答案可以帮助我解决问题。
首先,我的问题/问题:
- 我想对多重连接查询中的某些列进行求和和计数
- 多重连接是不可能的吗?我必须筑巢吗
SELECT
查询?
下面是我的数据库的 SQL 转储以及示例数据:http://pastie.org/private/vq7qkfer5mwyraudb5dh0a http://pastie.org/private/vq7qkfer5mwyraudb5dh0a
这是我认为可以解决问题的查询:
SELECT firstname, lastname, sum(goal.goal), sum(assist.assist), sum(gw.gw), sum(win.win), count(played.idplayer) FROM player
LEFT JOIN goal USING (idplayer)
LEFT JOIN assist USING (idplayer)
LEFT JOIN gw USING (idplayer)
LEFT JOIN win USING (idplayer)
LEFT JOIN played USING (idplayer)
GROUP BY idplayer
我希望生成一个表格,其中目标、助攻、gw、胜利和比赛的列是该列中每一行的总和/计数,如下所示:(带有提供的示例数据)
+-----------+----------+------+--------+----+-----+--------+
| firstname | lastname | goal | assist | gw | win | played |
+-----------+----------+------+--------+----+-----+--------+
| Gandalf | The White| 10 | 6 | 1 | 1 | 2 |
| Frodo | Baggins | 16 | 2 | 1 | 2 | 2 |
| Bilbo | Baggins | 7 | 3 | 0 | 0 | 2 |
+-----------+----------+------+--------+----+-----+--------+
那么,再次迭代上述问题,是否可以通过一个查询和多个联接来实现这一点?
如果您提供解决方案/疑问,请解释一下!我是正确的关系数据库的新手,在这个项目之前我从未使用过联接。除非必要,如果您避免使用别名,我也将不胜感激。
我已经运行了上面的查询,没有求和和分组,并且我为我执行的每列得到了一组行SELECT
上,我怀疑然后将其相乘或相加,但我的印象是分组和/或做sum(TABLE.COLUMN)
会解决这个问题。
另一件事是,我认为,做一个SELECT DISTINCT
或任何其他DISTINCT
操作将不起作用,因为这会遗漏一些(“重复”)结果。
附言。如果重要的话,我的开发机器是 WAMP,但发布将在 ubuntu/apache/mysql/php 上。