1

次のようなクエリがあります。

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

グループ化は、テーブル 2 から foo にアクセスするためのサブセレクトが必要であることを意味します。テーブル 2 から 2 番目の列を選択したい場合、2 番目のサブ選択なしでこれにアクセスする方法はありますか?

データベースは DB2 です。

編集: 結合は多対 1 です。つまり、table_one を注文として、table_b をアイテムの情報を含むも​​のと考えてください。

4

2 に答える 2

2

table_two には table_one.x ごとに複数の行がありますか、それとも one-2-one 結合ですか... one-2-one の場合、これはあなたが望むことをしませんか...ご入会と同条件

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
于 2009-04-20T08:53:58.327 に答える
0
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
于 2009-04-20T08:58:07.100 に答える