Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите написать выборку
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Помогите написать выборку

Страниц (1): [1]
 

1. Arcoslov - 06 Ноября, 2015 - 11:17:47 - перейти к сообщению
Здравствуйте.
Помогите, пожалуйста, написать запрос )

Дано:
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):
скопировать код в буфер обмена
  1. SELECT SUM ( `number`) FROM `table1` WHERE `table1`.`column1` IN (SELECT `table2`.`column1` FROM `table2` WHERE `table2`.`column2` = 5)


Это оптимально?

 

Powered by ExBB FM 1.0 RC1