網(wǎng)站建設(shè)綿陽(yáng)網(wǎng)絡(luò)營(yíng)銷品牌案例
MySQL技巧之跨服務(wù)器數(shù)據(jù)查詢:基礎(chǔ)篇-A數(shù)據(jù)庫(kù)與B數(shù)據(jù)庫(kù)查詢合并
上一篇已經(jīng)描述:借用微軟的SQL Server + ODBC 即可實(shí)現(xiàn)MySQL跨服務(wù)器間的數(shù)據(jù)查詢。
而且還介紹了如何獲得一個(gè)在MS SQL Server 可以連接指定實(shí)例的MySQL數(shù)據(jù)庫(kù)的鏈接名: MY_ODBC_MYSQL
以及用同樣的方法,做的另一個(gè)鏈接名 MY_ODBC_MYSQL2
還實(shí)現(xiàn)了第一次查詢,在MS SQL Server打開一個(gè)新查詢,輸入以下腳本:
SELECT Q.country_code, Q.country_name
FROM OPENQUERY(MY_ODBC_MYSQL, ’
SELECT country_code, country_name FROM country
WHERE Code = ‘‘IR’’
') AS Q
上一篇我們也知道動(dòng)態(tài)參數(shù)查詢?cè)趺磳懥?。有時(shí)我們想從兩個(gè)(或者多個(gè))不同服務(wù)器中合并查詢統(tǒng)計(jì)數(shù)據(jù),跨服務(wù)器的A數(shù)據(jù)庫(kù)與B數(shù)據(jù)庫(kù)查詢合并又該如何寫?
假設(shè)我想把A數(shù)據(jù)庫(kù)查詢出來(lái)的伊朗,與B數(shù)據(jù)庫(kù)查詢出來(lái)的沙特合并在一起。
– A數(shù)據(jù)庫(kù)與B數(shù)據(jù)庫(kù)查詢合并,假設(shè)My_ODBC_MYSQL連接A數(shù)據(jù)庫(kù),My_ODBC_MYSQL2連接B數(shù)據(jù)庫(kù)
DECLARE @QryStr nvarchar(4000) – 查詢腳本
SET @QryStr =
’ SELECT Q.country_code, Q.country_name ’ +
’ FROM OPENQUERY(My_ODBC_MYSQL, ‘’’ +
’ SELECT country_code, country_name FROM country ’ +
’ WHERE country_code = ‘’‘’’ + ‘IR’ + ‘’‘’‘’ +
‘’‘) AS Q ’ +
’ UNION ALL ’ +
’ SELECT Q.country_code, Q.country_name ’ +
’ FROM OPENQUERY(My_ODBC_MYSQL2, ‘’’ +
’ SELECT country_code, country_name FROM country ’ +
’ WHERE country_code = ‘’‘’’ + ‘SA’ + ‘’‘’‘’ +
‘’') AS Q ’
EXEC sp_executesql @QryStr
以上實(shí)例用到了此前基礎(chǔ)篇準(zhǔn)備的,能連接兩個(gè)不同服務(wù)器的鏈接名:My_ODBC_MYSQL、My_ODBC_MYSQL2。請(qǐng)認(rèn)真體會(huì)其中格式。
妙!高!實(shí)在是高!
加粉絲看
MySQL技巧系列之《未經(jīng)證實(shí)的葵花寶典》:一篇可以當(dāng)飯吃的MySQL文章,值得收藏
總結(jié):借用微軟的SQL Server + ODBC 即可實(shí)現(xiàn)MySQL跨服務(wù)器間的數(shù)據(jù)查詢。準(zhǔn)備兩個(gè)能連接兩個(gè)不同服務(wù)器的鏈接名,使用OPENQUERY函數(shù),把能連接A、B數(shù)據(jù)庫(kù)的動(dòng)態(tài)語(yǔ)句拼接好,執(zhí)行 EXEC sp_executesql @QryStr即可。