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;