2014年5月12日 星期一

Coldfusion 來自不同資料庫的join作法

Coldfusion server 提供了許多資料庫的Native Connection方式,或是Jconnect的方式,在我認為效率總是比ODBC好多了,所以我寫的網頁常常遊走在不同資料庫上,我最常用的資料庫不外乎Sybase ASE 與 MS SQL (或是更早的MSDE)這兩種資料庫,所以需要用到兩種BD來源的Table需要Join的問題:

這技術需要用到 inMemory Query 的作法就可以達成

首先從各資料庫先取出需要 join 的資料(可以盡量使用篩選過的,減少記憶體用量)

<cfquery name="emp" datasource="SYB_CONN">
SELECT empl_no,empl_name,title_no
FROM rmployee WHERE depart_no = 'sales'
</cfquery>
<cftransaction action="commit" />

<cfquery name="ttl" datasource="MSSQL_CONN">
SELECT title_no,title_name
FROM outsider_title WHERE title_kind = 'S'
</cfquery>
<cftransaction action="commit" />

Join 兩邊的資料源

<cfquery name="emptlo" dbtype="query">
SELECT a.empl_name,b.title_name
FROM emp a, ttl b
WHERE a.title_no = b.title_no
</cfquery>

輸出測試

<cfloop query="emptlo">
<cfoutput>#empl_name# , #title_name# <br /></cfoutput>
</cfloop>

簡單吧!

0 個回應: