2011-02-06 24 views
1

名前を含むすべてのユーザー情報を含むデータベースが1つあります。次に、ユーザーからの注釈を含む2番目のデータベースがあり、#idは含まれていますが名前は含まれていません。私は、ユーザーのメモを取得するために私がやっているクエリは、そのすべてのことがノートを表示しているので、私は別のクエリを実行している共通の#idを使用して最初のデータベースから名前を取得しています。しかし、それは表示されません。2つの異なるクエリから値を表示するにはどうすればよいですか?

このクエリを1つの方法で実行する方法はありますか?助けてください。ありがとう。

答えて

1

用途:接続の資格情報を仮定し

SELECT u.name, 
      n.* 
    FROM DB2.NOTES n 
LEFT JOIN DB1.USERS u ON n.id = u.id 
ORDER BY u.name 

が両方のデータベースへのアクセス権を持っている、あなたは、テーブル名の前にデータベース名をプレフィックスとピリオドで区切ります。

LEFT JOINには、両方のユーザーとユーザーが関連付けられていないノートが表示されます。ここにはgood primer on JOINsがあります。

1

コードを表示する必要があるかもしれませんが、同じホスト上の2つのデータベース(またはスキーマ)に対してクエリを記述することができます。たとえば、データベース名でテーブル名を修飾するだけです。

SELECT db1.user.id, db1.user.name, db2.userinfo.notes 
FROM db1.user 
INNER JOIN db2.userinfo ON(db1.user.id=db2.userinfo.id) 

接続する資格情報は、両方のデータベースにアクセスできる必要があります。

関連する問題