如何在SQL中执行嵌套查询

时间:2018-09-24 19:35:50

标签: mysql sql database dataset querying

我正在尝试学习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

谢谢

2 个答案:

答案 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