Избегание нескольких вложенных элементов при группировании - PullRequest
1 голос
/ 20 апреля 2009

У меня есть запрос, который работает как:

select table_one.x, sum(table_one.y)
(select foo from table_two where table_one.x = table_two.x) as item_description
from table_one
inner join table_two
on table_one.x = table_two.x
-- where table_2 row has various attributes
group by table_one.x

Группировка означает, что мне нужен дополнительный выбор для доступа к foo из таблицы два. Теперь, если я хочу выбрать второй столбец из второй таблицы, есть ли способ получить к нему доступ без второго дополнительного выбора?

База данных - это DB2.

EDIT: соединение - это многие к одному, т. е. воспринимайте table_one как заказы, а table_b - как информацию для элемента.

Ответы [ 2 ]

2 голосов
/ 20 апреля 2009

имеет ли table_two несколько строк для каждого table_one.x или это соединение один-2-один ... если это один-2-один, то это не делает то, что вы хотите ... так как ваш дополнительный выбор выполняется на тех же условиях, что и ваше объединение

SELECT
   table_one.x, table_two.foo, sum(table_one.y)
FROM table_one
   INNER JOIN table_two
       ON table_one.x = table_two.x 
GROUP BY
   table_one.x, table_two.foo
0 голосов
/ 20 апреля 2009
SELECT  *
FROM    (
        SELECT  x, SUM(y)
        FROM    table_one
        GROUP BY
                x
        ) AS t1
INNER JOIN
        table_two t2
ON      t2.x = t1.x
-- where table_2 row has various attributes
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...