今天碰到一个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 26
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 ON a.organ_id = b.ID
INNER JOIN db2.info AS c ON a.user_id = c.user_id
WHERE c.NodeID = 2
GROUP BY b.ID 运行结果如下:organ_name nums甲组 4乙组
背景:有时在从A库中导入数据到B库数据少,像select into之类,则没有必要进行导出再导入,直接库查并导入即可。
跨库查询
数据库IP地址 数据库名 数据库登陆名 数据库密码
127.0.0.1 A aa 123
127.0.0.1 B bb 222
数据库A有张表tabA1 数据库B有张表tabB1 ,tabA1和tabB1 表结构相同
我现在想把 tabB1的数据查出来插入 tabA1 中 请问 SQL语句 应该如何写?
MSSQLSERVER 可以如下写,MYSQL该如何写呢?
insert into A.tabA1
select *
from
B.tabB1
------解决方案--------------------
一样啊。 只要当前用户有这两个库的权限即可。
------解决方案--------------------
一样
insert into A.tabA1 select * from B.tabB1
来自:
————————————————————————————————————————————————————————
在一个mysql5.0的服务器上建有两个库DA,DB DA中有表room,DB中有表user
两个表通过 room.userid=user.id关键。现在想查询
user.id=0001 and user.pwd=123 and room.userid=001的记录,如何实现?
select r.name, r.userid
from DA.rooms r,
DB.user u
where r.userid = u.id
and u.id = 1001001 -- 如果 id 是字符类型的, 这里应该是 ='1001001'
and u.pwd = '123'
阅读(11565) | 评论(0) | 转发(0) |