2016-10-12 17 views
2

私は2つのデータベースtest1,test2を持っており、両方ともcompanyのテーブルcompany_namepeopleを持っています。今、私は両方のテーブルにある企業の名前を選択したいと私はこのクエリでそれを達成:複数のプロパティの内部結合

SELECT t1.company_name 
FROM dblink('dbname=test1', 
      'select company_name from company where companyid IS NOT NULL' 
      ) AS t1(company_name name) 
    INNER JOIN 
    (SELECT company_name 
     FROM dblink('dbname=test2', 
        'select company_name from company where companyid IS NOT NULL' 
       ) AS t2(company_name name) 
    ) AS t3(company_name) 
ON t1.company_name=t3.company_name; 

しかし、今私は、彼らが同じcompany_namepeopleを持っている場合、両方のテーブルの企業を取得したいです。私は上記のクエリの最後に平等性を追加しようとしましたが、うまくいきませんでした。あなたは「

+1

、あなたが '作成した場合ずっと容易になるだろう代わりに外国のテーブル '?.. –

+0

あなたはこれが与えられる方法ではありません – Joel

答えて

1

  • のdblink SELECT
  • 表の別名t1t2
  • JOIN状態にpeopleを追加する必要が
+0

SELECT t1.company_name、t1.people 私は、会社名が、companyidがNULLではない会社から、会社名を選択して、 、 、 から )AS t1(会社名、人名) INNERは、T3(COMPANY_NAME、人)AS(T2(COMPANY_NAME名前、人の名前) AS dblinkをFROM COMPANY_NAME をSELECT( 'DBNAME = test2は'、 「COMPANY_NAMEを選択し、企業IDがNULLではない会社からの人の )) を登録しよう ON t1.company_name = t3.company_nameおよびt1.people = t3.people; – Joel

+0

しかし、私は次のエラーが表示されます:エラー:テーブル "t3"は利用可能な1列を持っていますが、2列が指定されました – Joel

+0

私は間違いを発見しました。 – Joel

関連する問題