私はこの問題を2日間無駄なく検索していますので、質問をする時です。私は以前これが尋ねられたことは知っていますが、私が見つけたものは何も私の問題を解決することができませんでした。私は、2つの異なるデータベース接続から、結合を実行する2つのテーブルを持っています。これまでのところ私は持っています:SQLが複数のデータベース接続から複数のテーブルに参加する
$conn1 = odbc_connect("db-1","user","pass")
or die ("Couldn't Connect to Server");
$conn2 = odbc_connect("db-2","user","pass")
or die ("Couldn't Connect to Server");
$Query = 'SELECT PV_Job1.PlantCode,
PV_Job1.JobCode,
PV_Jobline1.JobLineNum,
PV_Jobline1.ItemCode,
PM_Item1.ItemShortDesc
FROM VISION.PUB.PV_Job PV_Job1
LEFT OUTER JOIN spec.public.specification specification
ON PV_JobLine1.ItemCode=specification.customer_item_code
LEFT OUTER JOIN VISION.PUB.PV_Jobline PV_Jobline1
ON (PV_Job1.CompNum=PV_JobLine1.CompNum
AND PV_Job1.PlantCode=PV_JobLine1.PlantCode)
AND PV_Job1.JobCode=PV_JobLine1.JobCode';
$Result = odbc_exec($conn1,$Query);
これはエラーを投げます。この質問に対する他の答えは、server1.database1.dbo.table1のようなものを使用することを推奨していますが、この場合server1とdatabase1はどうなりますか?私はSQLにはまったく初心者で、このようなことは一度もしていません。私はまた動作しなかったリンクサーバーを作成しようとしました。あなたはこれをより簡単にするために、接続2.
を使用します。ここで、私はあなたのコードで表示されていない
私は最初の参加でそれを使用します。 「spec」は、第2のデータベース内のオブジェクトである。残念ながら、私はSQLサーバー自体にアクセスできません。これはまた、エラーログにアクセスできないことを意味します。したがって、SQL Server Managementでリンクを作成すると、この作業を行う唯一の方法があります。 – dyarbrough
はい、私はあなたの質問を正しく理解しています。 SQL Serverでは、データベースはインスタンス上でホストされています。 1つのインスタンスは接続先であり、そこからデータベースにクエリを実行します。たとえば、サーバー名はインスタンス名と同じであることが多く、環境名(SPECPRODやSPECDEVなど)が含まれています。 'SPECDEV'の中には、' spec_archive'、 'spec'などの複数のデータベースがあります。一つのサーバ上で複数のサーバ間またはデータベース間でクエリを書こうとしていますか? –
セットアップの唯一のビジュアルはCrystal Reportsで、ここでは2つの別々の接続としてリストされています。私。最初のものはPostgreSpec-> spec-> public->仕様であり、2つ目はVision-LIVE-> VISION-> PUB-> PV_Jobであり、PostgreSpecとVision-LIVEは別の接続です。 – dyarbrough