我正在尝试学习SQL,虽然我正在慢慢学习如何查询数据,但我仍然坚持查询查询的结果。举个例子
我希望SQL语句执行2件事。假设我有2个类似下面的表(表1是在堆栈溢出时从另一个示例借来的)
表1:
ID game point time
1 x 5 7:00
1 z 4 11:00
2 y 6 9:00
3 x 2 2:00
3 y 5 4:00
3 z 8 6:00
4 k 0 8:00
表2:
id tv chan
1 cab
2 trop
3 start
4 cab
我要做的第一件事是合并这些表中的某些列。我知道我可以选择这些列并在ID上进行内部联接
但是,我想做的第二件事是删除所有点值为0的行,然后只保留具有最低点值的不同游戏名称的行。所以我希望决赛桌看起来像这样
id game point tv chan
1 z 4 cab
2 y 5 trop
3 x 2 start
谢谢
答案 0 :(得分:1)
您可以将联接与子查询一起使用,该子查询按ID和游戏进行分组以获取最小点
select t1.id, t1.game. t1.point, t2 `tv chan`
from (
select id, game, min(point) point
from table1
where point > 0
group by id, game
) t1
inner join table2 t2 on t1.id = t2.id
答案 1 :(得分:1)
您可以尝试这样的事情:
id last NewColumn
1 Smith 1 = Smith
2 CoppHeadlager 2 = CoppHeadlager