Как сделать Вложенные Запросы в SQL

0

Я пытаюсь изучить 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

Спасибо

  • 1
    Минимальное количество очков для игры у 5 (не 6)
  • 0
    спасибо исправила
Теги:
database
dataset

2 ответа

1
Лучший ответ

Вы можете попробовать что-то вроде этого:

SELECT t1.ID, 
       t1.game, 
       t1.point, 
       t2.tv_chan 
FROM Table1 AS t1
INNER JOIN Table2 AS t2 ON t2.id = t1.id 
INNER JOIN (SELECT t11.game, MIN(t11.point) AS min_point  
            FROM Table1 AS t11 
            WHERE t11.point != 0 
            GROUP BY t11.game
           ) AS t3 ON t3.game = t1.game
                      AND t3.min_point = t1.point 
WHERE t1.point != 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню