Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2879872
  • 博文数量: 471
  • 博客积分: 7081
  • 博客等级: 少将
  • 技术积分: 5369
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 21:55
文章分类

全部博文(471)

文章存档

2014年(90)

2013年(69)

2012年(312)

分类: Mysql/postgreSQL

2014-10-23 17:12:04

今天碰到一个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' 
阅读(11574) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~