0
Select t1.column1,t1.column2,t2.column1,t2.column2 from table1 t1 
join (select column1,min(column2) from table2 group by column1) t2
On table1.column1 = table2.column1

テーブル全体ではなく、他のテーブルから選択した列のテーブルを結合します。

技術的には何と呼ばれていますか?サブクエリと呼ばれていますか?

4

3 に答える 3

1

はい、サブクエリです。

これは、次のように書くこともできます。

Select t1.column1,
    t1.column2,
    t2.column1 
from table1 t1 
join table2 t2
    On t1.column1 = t2.column1

サブクエリを使用して 1 つの列を返すだけで、集計やその他の操作を使用していないため、その状況ではサブクエリを使用しません。集約関数を使用したい場合は、以下を使用することでサブクエリを使用する方が簡単な場合がありますgroup by

Select t1.column1,
    t1.column2,
    t2.column1 
from table1 t1 
join
(
    select column1, MAX(date) MaxDate
    from table2
    group by column1
) t2
    On t1.column1 = t2.column1
于 2013-02-25T18:05:04.183 に答える
1

あなたが本質的にやっていることは、匿名のビューに参加することです。代わりにあなたがしたと想像してください:

create view t2 as select column1 from table2

select t1.column1, t1.column2, t2.column1 from table1 t1 join t2 on t1.column1 = t2.column2

それは基本的に同じことです。

于 2013-02-25T18:05:40.523 に答える
0

結合条件が等式であるため、これは「内部等結合」と呼ばれます。「テーブル全体ではなく、他のテーブルから列を選択する」とはどういう意味かわかりません。結合は通常、テーブル間で1つまたは2つの列のみを使用します。列は通常、主キーまたは外部キーのいずれかです。

このクエリはtable2.column2、の各値の最小値を取得し、にない値table1.column1 除外するだけです。まさにこのタイプの結合に特別なフレーズはありません。table1.column1table2

于 2013-02-25T18:35:34.540 に答える