MySQL跨库取数指的是在一个MySQL数据库实例中,从不同的数据库(schema)中查询数据。MySQL本身并不直接支持跨库查询,但可以通过一些方法实现类似的功能。
假设我们有两个数据库db1
和db2
,分别有一个表table1
和table2
,我们希望将这两个表的数据合并查询。
-- 使用UNION ALL
SELECT id, name FROM db1.table1
UNION ALL
SELECT id, name FROM db2.table2;
-- 使用存储过程
DELIMITER //
CREATE PROCEDURE `get_combined_data`(OUT result TEXT)
BEGIN
DECLARE v_result TEXT;
SET v_result = CONCAT('db1:', (SELECT GROUP_CONCAT(name) FROM db1.table1), '; db2:', (SELECT GROUP_CONCAT(name) FROM db2.table2));
SET result = v_result;
END //
DELIMITER ;
CALL get_combined_data(@result);
SELECT @result;
希望这些信息对你有所帮助!如果有更多具体问题,欢迎继续提问。
领取专属 10元无门槛券
手把手带您无忧上云