2016-09-24 4 views
0

私は3つのテーブルperson、addressとIDを持っています。テーブルの結合と比較のための表示

IDテーブルにはID1とID2の2つの列があります。 Iamは以下のように人と住所を比較してデータを取得しようとしています。

ときID1 = Person.ID = Address.IDとID2 = person.ID = Address.ID

________________________________________________________________________ 
name 1 age1 address1 city1 name2 age2 address2 city2 
_________________________________________________________________________ 
abc  34 123 street LA  abc 34  111 street LA 
xyz  22  New Street DC  xyz 22  New Street DC 
___________________________________________________________________________ 

だから、基本的に私はID1に基づいて、上記の表の前半と後半を表示したいですID2のテーブル どのように私はこの仕事をすることができます私は任意のヘルプが喜ばれるクエリに新しいです。

+0

できる場合は、テーブル構造を転記してください。テーブルは正しい順序ではありません。親切に変更する –

+0

元のビジネス上の問題点を述べると、より多くの助けを得ることができます。たとえば、ゴードンの答えに対するコメントでは、あなたのビジネスケースが何であるかを推測しています。これが本当に必要な場合は、データを並べて表示する必要はありません。これらの比較を行うより良い方法があります。 – mathguy

+0

私たちはレコードの統合中です。IDテーブルには、候補の候補として見つかったレコードのROWIDが含まれています。私たちは、すべてのレコードを並べて見ることができるように、それを優れたものにしたいと思っています。私はそれが古い学校に聞こえるが、それは計画です。 –

答えて

0

私はあなたがこのような何かを探していると思う:

select p1.name as name1, . . . 
from id join 
    address a1 
    on id.id1 = a1.id join 
    person p1 
    on id.id1 = p1.id join 
    address a2 
    on id.id2 = a2.id join 
    person p2 
    on id.id2 = p2.id; 

注:お使いのデータ構造は非常に奇妙なようです。 idという2つの異なるエンティティ(「人物」と「住所」)の間で共有されている列が私にとって正しいとは思われません。

+0

推測します...おそらく彼らは同じ情報(ID、名前、住所)を2つの平行な場所に持ち、それが正しく行われていることを確認していますか?このシステムの同じ情報にはID1があり、他のID2には...今は統合中ですか? – mathguy

+0

もちろん、レポートを生成して比較する必要があります。 IDのIDテーブルは、それぞれのテーブルからデータをフェッチするためのROWIDです。 –

関連する問題