[英]Use two database in one mysql sql query
我想在一個SQL查詢中使用2個數據庫。我將在一個數據庫中運行查詢,另一個數據庫應該通過在表中添加數據庫名稱前綴來選擇,但第二個數據庫名稱我想動態選擇。 例如:
SELECT * FROM db1.contact WHERE id
IN (SELECT contact_id FROM (REPLACE(DATABASE(),1,2)).email);
我該怎么做?
您可以嘗試執行以下操作:
SELECT * FROM db1.contact WHERE id IN (SELECT contact_id FROM db2.email);
對於第二台服務器:
SELECT * FROM db21.contact WHERE id IN (SELECT contact_id FROM db1.email);
但是不能動態選擇數據庫,因為SQL的DATABASE部分不支持任何類型的功能 (例如REPLACE,IF等)
我看到的唯一方法是動態SQL。
SELECT @dbname := 'db2';
SELECT @query := CONCAT('SELECT * FROM db1.contact WHERE id IN ',
'(SELECT contact_id FROM ', @dbname, '.email);');
PREPARE stmt FROM @query;
EXECUTE stmt;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.