我一直在這個問題上搜索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很陌生,我從來沒有做過這樣的事情。我也嘗試創建一個沒有工作的鏈接服務器。
我在第一次連接中使用它。 「spec」是第二個數據庫中的一個對象。不幸的是,我沒有訪問SQL服務器本身。這也意味着我無法訪問錯誤日誌。所以做這項工作的唯一方法是如果我在SQL Server Management中創建一個鏈接? – dyarbrough
是的,如果我正確理解你的問題。我想澄清一件事:在SQL Server中,數據庫託管在一個實例上。一個實例是連接到的內容,並從那裏查詢數據庫。例如,服務器名稱通常與實例名稱相同,並且包含環境的名稱,例如'SPECPROD'或'SPECDEV'。在'SPECDEV'中,你會有多個數據庫,比如'spec_archive','spec'等等。你是否試圖在一臺服務器上跨多臺服務器或跨數據庫編寫查詢? –
不完全確定,我的設置唯一的可視化在Crystal Reports中,在這裏它們被列爲兩個單獨的連接。即第一個是PostgreSpec-> spec-> public-> specification,第二個是Vision-LIVE-> VISION-> PUB-> PV_Job,PostgreSpec和Vision-LIVE是單獨的連接。 – dyarbrough