MySQL跨库多表联合查询

今天碰到一个MySQL需要跨库三个表联合查询的问题,经过反复验证,已经实现,留底备查。
环境前提条件:
操作MySQL的user有db1和db2的权限,且db1和db2在同一个host
即:
$host = "172.16.0.112";
$user = "root";
$password = "pwd";
要解决问题为:
现有两个库db1和db2,db1有一个info表,db2有两个表,一个是user,一个是organ
info的主要字段是
ID info_id user_id NodeID
1 1 1 1
2 2 1 2
3 3 2 2
4 4 3 2
5 5 2 2
6 6 2 2
user的主要字段是
ID user_id organ_id
1 1 1
2 2 1
3 3 2
organ的主要字段是
ID name
1 甲组
2 乙组
目的:要得到info中NodeID为2的信息由哪几个组发的,且发的数量要汇总
即要得到:
甲组 4
乙组 1
SQL语句如下:
SELECT b.name AS organ_name, COUNT(a.ID) AS nums
FROM db1.user AS a
INNER JOIN db1.organ AS b _disibledevent=>
INNER JOIN db2.info AS c _disibledevent=>
WHERE c.NodeID = 2
GROUP BY b.ID
运行结果如下:
organ_name nums
甲组 4
乙组 1
Tags: 

延伸阅读

最新评论

发表评论