SQL подсчитывает 1 таблицу и объединяет информацию из таблицы 2 в результаты

Мне нужна помощь с SQL. У меня есть столбец в терминале и столбец в table2, которые соответствуют друг другу. (индекс) Я хочу отобразить количество терминалов по индексу в таблице 'терминал' и объединить его с таблицей2, чтобы включить имя индекса в вывод

select index,terminal=count(*) from terminal 
group by index

возвращается

index     terminal
--------- -----------
1          94
2          15

В таблице 2 у меня есть индекс, который соответствует индексу в таблице "терминал", и у него также есть имя, которое соответствует индексу.

Пример:

select * from table2

Возвращает:

index    name          lcmid        handle     
------   ------        --------     --------
1        nameofindex1  8            10
2        nameofindex2  12           27

Я хочу подсчитать количество терминалов, соответствующих индексам в таблице 1, а затем объединить их, чтобы включить в результат "nameofindexes", lcmid и handle. Я прошу прощения за то, что выглядел как новичок, но я учусь на ходу.

Любая помощь с благодарностью.

1 ответ

Решение

Ну, тебе нужно присоединиться. Может быть:

SELECT t1.index, c=count(*), t2.name FROM terminal AS t1
    INNER JOIN table2 AS t2 ON t1.index = t2.index
    GROUP BY t1.index;

Я немного заржавел, поэтому этот запрос может быть не совсем правильным, но JOIN - это направление, в котором вам нужно идти.

РЕДАКТИРОВАТЬ:

Как указано в комментариях, это работает для mysql, но не для разновидности OP SQL. Смена t1.index на t2.index в предложениях SELECT и GROUP BY сработала:

SELECT t2.index, c=count(*), t2.name FROM terminal AS t1
    INNER JOIN table2 AS t2 ON t1.index = t2.index
    GROUP BY t2.index;
Другие вопросы по тегам