-1

次のように2つのテーブルがありますT1 and T2.

T1 has one field as A  and T2  has one field B.

T1.A今、私は次のことをしたい:結合したいの各値についてT2.B

何かのようなもの :

select * from T1 ,(select * from where T2 where T2.B = T1.A)

これは正しいです?これを試すと、というエラーが表示されますT1.A is invalid indentifier

私は私ができることを知っていますselect * from T1,T2 where T1.A = T2.B

しかし、私のユースケースは非常に複雑です。クエリ ( select * from where T2 where T2.B = T1.A) は非常に複雑です。

では、どうすればこれを進めることができますか?

4

5 に答える 5

2

JOINテーブルに必要なものは次のとおりです。

select * 
from T1 
inner join T2 
  on T2.B = T1.A

JOIN構文を学習するのに助けが必要な場合は、 join の優れた視覚的な説明があります

と の間でINNER JOIN一致する行を返すを使用しました。一致する行がない場合でも、すべての行を返すa を使用する必要がある場合がありますT1T2LEFT JOINT1T2

選択する別のクエリがある場合は、サブクエリを使用できます。

select * 
from T1 
inner join
( 
   -- place your query here
   select *
   from T2
) T2 
  on T2.B = T1.A

サブクエリが 1 つの列のみを返す場合は、次を使用できます。

select t1.*, (select t2.col1 from T2 t2 where t2.B = t1.A) 
from T1 t1
于 2013-01-22T16:52:35.673 に答える
1

私が間違っていない限り、あなたはただ使うことができませんJOIN

select * 
from t1 
join t2 on t1.field = t2.field

幸運を。

于 2013-01-22T16:52:15.177 に答える
0

できるよ

select * 
from T1 
inner join T2 
  on T2.B = T1.A

他の人が言ったように。ただし、この「オン」バージョンは読みやすさのためにのみ推奨されます。

使用を進めることもできます

select * from T1,T2 where T1.A = T2.B

クエリは同等であるため、オプティマイザはそれを理解し、まったく同じことを行います。

何も問題はないので、先に使用することができます。

于 2013-01-22T16:55:25.183 に答える
0
select * from first_table inner join second_table on first_table.X = second_table.Y
于 2013-01-22T16:55:40.047 に答える
0

select A,T1.B,(select * from where T2 where T2.B = T1.A) FROM T1 .これは役に立ちますか?

于 2013-01-22T17:00:00.480 に答える