MySQL 支持跨库关联查询。如果有两个不同的数据库,例如 db1db2,并且希望在 db1 的表 table1db2 的表 table2 之间进行关联查询,可以使用以下的 SQL 语句格式:

SELECT ... FROM db1.table1 t1 JOIN db2.table2 t2 ON t1.column_name = t2.column_name WHERE ...

mysql跨库关联查询的注意事项:

  1. 要对两个数据库都有读权限。
  2. 涉及到跨库 JOIN 操作时,最好在连接列上建好索引,来提高查询性能。
  3. 虽然是跨库,但这两个库还是要在同一个 MySQL 服务实例上的。

mysql跨库关联查询示例

假设有两个数据库 saleshr

  • sales 数据库有一个表 orders,其中有列 employee_idorder_amount
  • hr 数据库有一个表 employees,其中有列 employee_idemployee_name

如果想查找每个员工的名字和他们的总订单金额,可以这样做:

SELECT e.employee_name, SUM(o.order_amount) as total_sales FROM sales.orders o JOIN hr.employees e ON o.employee_id = e.employee_id GROUP BY e.employee_id, e.employee_name;

这将返回每个员工的名字及其总销售额。