我有两张桌子.其中一个包含引号,另一个列出每个引用的所有给定投票(+1或-1).出于演示目的,我已经制作了两个表的简化版本:
+----+-----------------------------------------------------------------------+
| ID | quote |
+----+-----------------------------------------------------------------------+
| 1 | If you stare into the Abyss long enough the Abyss stares back at you. |
| 2 | Don't cry because it's over. Smile because it happened. |
| 3 | Those that fail to learn from history, are doomed to repeat it. |
| 4 | Find a job you love and you'll never work a day in your life. |
+----+-----------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
+----+-------+------+
| ID | quote | vote |
+----+-------+------+
| 1 | 1 | -1 |
| 2 | 1 | -1 |
| 3 | 3 | 1 |
| 4 | 3 | -1 |
| 5 | 3 | 1 |
| 6 | 3 | -1 |
| 7 | 4 | 1 |
| 8 | 4 | 1 |
| 9 | 4 | 1 |
+----+-------+------+
Run Code Online (Sandbox Code Playgroud)
我想在我的网站上列出所有报价,并显示相应的投票数.首先,SQL查询应读取所有引号,然后加入投票表.但是,它应该最终列出每个报价的所有投票的总和.因此,SQL查询的结果如下所示:
+----+-----------------+------+
| ID | quote | vote |
+----+-----------------+------+
| 1 | If you stare... | -2 |
| 2 | Don't cry... | NULL |
| 3 | Those that... | 0 |
| 4 | Find a job... | 3 |
+----+-----------------+------+
Run Code Online (Sandbox Code Playgroud)
SQL查询如何看起来像前面描述的那样?
SELECT
`quotes`.`id` as `ID`,
`quote`.`quote` as `quote`,
SUM(`votes`.`vote`) AS `vote`
FROM `quotes`
LEFT JOIN `votes`
ON `quotes`.`id` = `votes`.`quote`
GROUP BY `quotes`.`id`
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩.
假设id列是主键(它们对于每个记录都是唯一的).
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |