是權限問題吧,帳號存取db2的權限嗎?
下指令的帳號是 root
沒寫操作的過程,不知道你的問題在哪
MSSQL可以用連結伺服器進行跨資料庫查詢
MYSQL我就不熟了
其實操作過程就很簡單,想嘗試在資料庫 db1,存取 db2 的資料~
只是我是失敗的,但別人是成功的…
且好像沒啥人遇到這種問題~
應該要一開始就說明是在phpMyAdmin做的操作,別人才知道你的問題在哪,測試的結果,不需要加USE db1的語法,就可以直接操作了
嗯,正常是不用加 USE db1,只要用「db2.tableA」,就可以指定查詢哪個資料庫中的哪個資料表,來達成跨資料庫查詢的需求。
所以我很納悶為什麼我的環境不行…
在sqlite可以用attach
表達式
範例:http://www.sqlitetutorial.net/sqlite-attach-database/
不知道MYSQL有沒有類似的功能?
正常來說是可以的,
只要是同一個資料庫系統。
而且該帳號有權限。
另外,
你語法錯誤的訊息是什麼,
也許丟給G先生就有解答了。
另外
USE db1;
SELECT * FROM db2.tableA;
你後面有加分號嗎?
我是在 phpMyAdmin 執行所以不用加分號~
而且犯上這種錯誤而不自覺的話,實在該打屁股~
錯誤訊息就是很單純的「你的SQL語法錯誤,請查詢手冊……」之類的~
我 Google 過,大部份的結果一樣是以「資料庫.資料表」 的查詢方式~
且我在 Youtube 的影片,卻看到有人在 phpMyAdmin 下執行「資料庫.資料表」查詢成功…
但就是不知道我為什麼不能成功…
USE db1
SELECT * FROM db2.tableA
這樣能讀到db2 SQL都還講師了唷
我是看到樓上都在裝會SQL
老話一句 基本功
跨兩台 MySQL也是做的到的.請參考我在2010年寫的一個範例:
http://phorum.study-area.org/index.php?topic=63818.0
miku!0.0
一級:看來您使用「資料庫.資料表」的方式來查詢,是可以成功的~且您貼的文章,我剛好在 Google 也有拜讀過~
只不過,我並沒跨到兩台 MySQL,我的都是在同一台上~~
db1
db2.tableA
檢查並確認 database/table name 的大小寫是否完全符合相同
正常來說大小寫對SQL來說是一樣的,
除非有特殊的編碼,
至少我在MS-SQL有碰過,
MySql目前只用過一個編碼,
還沒遇過此問題.
海綿寶寶:感謝您的回覆,我確定並非大小寫的問題~這個狀況我也懷疑過,所以有下過完全符合資料庫名稱、資料表名稱大小寫的查詢指令~~
但一樣發生語法失敗~