2016-11-03 10 views
0

したがって、テーブルAとテーブルBが2つあり、両方のテーブルに列アドレスがあります。表Aにはid1列があり、表Bにはid2列があります。 id1列とid2列の値が同じ場合は、アドレス列(テーブルBでも構いません)を取得したいと思います。どうやってSQLコマンドでそれを行うことができますか?これらの列が同じであれば言及する価値はありますが、アドレスも同じか類似しているので、どちらの表からでもアドレスを取ることができます。私は非常にSQLとあなたの助けに感謝される新しいです。あなたはこれを試してみてください、事前テーブルAの列AとテーブルBの列Bが等しい場合は、2つのテーブル(テーブルAとテーブルB)から出力を得ます。

+0

あなたの質問は、テーブルのスキーマ、適切なデータサンプル、および期待される結果を表示します... – scaisEdge

答えて

0

にありがとう:

Select address 
from tablea as a, table b as b 
where b.id =a.id 
+0

古くなって古くて脆弱な暗黙的な結合をwhere節でやめ、明示的な 'JOIN'演算子。 –

0

私は表1のアドレスが欠落している可能性がありますと仮定しています、それ以外の場合は、単にそのフィールドを選択の問題であると思います。私は(あわや)念のためにそれを処理するために、case文を追加しましたが、いない場合は、内側の組み合わせを持っているし、外部結合があれば、あなただけの、さらにa.addressで

Select a.id1, 
    case when a.address is not null 
     then a.address 
     else b.address end as new_address. 
from Table1 A, Table2 B 
where a.id1 = b.id2 

をその全体のビットを置き換えることができます起こっている(またはたくさんの結合)場合、より明示的な結合基準を追加したいと思うでしょう。

+0

古くて昔の脆弱な暗黙的な結合をwhere節でやめ、明示的な 'JOIN'演算子を使い始めてください。 –

+0

暗黙の参加が適切な場所で使用されている場合は、何も脆弱ではありません。結合演算子は、外部結合を行う場合にのみ必要です。 –

+0

暗黙的な結合**は脆弱です。なぜなら、欠落している結合条件ではエラーメッセージが発生しないため、クロス結合で簡単に処理できるからです。誤ってJOIN演算子を明示的に記述することは不可能です。 http://hastebin.com/tayimobapo.sqlを見て、ジョイン条件がないかどうかを調べる必要があるかどうかを教えてください。 –

関連する問題