Здравствуйте.
Помогите, пожалуйста, написать запрос )
Дано:
table1: id, column1, number
table2: id, column1, column2
id - это id,
остальные данные не уникальные и могут повторяться сколько угодно раз.
Из таблицы table1 нужно ссумировать все значения table1.number, которые имеют table1.column1 такое, которое в table2.column1 равно заданному нами значению в table2.column2
Например:
table1:
id, column1, number
1, 1, 1
2, 2, 2
3, 4, 3
4, 3, 4
table2:
id, column1, column2
1, 1, 1
2, 2, 2
3, 2, 1
4, 3, 1
5, 1, 2
Мы задаём на вход table2.column2 = 1
этому числу соответствуют:
table2.column1 = 1 (строка 1)
table2.column1 = 2 (строка 3)
table2.column1 = 3 (строка 4)
в table1.column1 этим числам соответствуют строки 1, 2 и 4, суммируем значения number этих строк, получаем: 1+2+4=7.
Надеюсь, описал понятно
(Добавление)
Подозреваю, что как-то так:
CODE ( SQL):
скопировать код в буфер обмена
SELECT SUM ( `number`) FROM `table1` WHERE `table1`.`column1` IN (SELECT `table2`.`column1` FROM `table2` WHERE `table2`.`column2` = 5)
Это оптимально?
|