繁体   English   中英

查询同一服务器中的两个数据库

[英]Query two databases in the same server

我在同一服务器上有两个数据库,我需要:

Select from table1 (in database1) the id field
Where notific1=1

但是只有user_id列表

Where in table2 (in database2) the enabled field=1

两个表中的user_id字段相同。

我试过了:

SELECT table1.id 
    FROM [database1].[dbo].[table1] as users
    INNER JOIN [database2].[dbo].[table2] as subs
    ON users.user_id=subs.user_id
    WHERE users.notific1=1 AND
    WHERE subs.enabled=1

这引发了错误:

。#1064-您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第2行的“ INNER JOIN [database2]。[dbo]”用户附近使用“ [database1]。[dbo]。[table1]”

注意:我正在使用MySQL

您不能像以前那样在2个位置(因为您用Mysql标记了问题)

WHERE users.notific1=1 AND
WHERE subs.enabled=1

它应该是

WHERE 
users.notific1=1 
AND
subs.enabled=1

同样在加入2个数据库时,语法是

select * from proj1.users as y 
inner join project2.users f on f.email = y.email 
and y.email = 'abhik@xxxx.com'

proj1project2是同一服务器中的2个数据库,而users是这些数据库中的表。

对于mysql, square brackets []不用于对象名称。 改用倒勾

SELECT table1.id 
    FROM `database1`.`table1` as users
    INNER JOIN `database2`.`table2` as subs
    ON users.user_id=subs.user_id
    WHERE users.notific1=1 AND
    subs.enabled=1

根据SqlServer,MySql中没有dbo模式。 只需删除dbo:

SELECT table1.id 
    FROM database1.table1 as users
    INNER JOIN database2.table2 as subs
    ON users.user_id=subs.user_id
    WHERE users.notific1=1 AND
    WHERE subs.enabled=1

“ where”写了两次。

请尝试以下方法:

SELECT table1.id 
    FROM database1.dbo.table1 as users
    INNER JOIN database2.dbo.table2 as subs
    ON users.user_id=subs.user_id
    WHERE users.notific1=1 AND
 subs.enabled=1

或条件

SELECT u1.*, 
       u2.* 
FROM   db1.table1 u1 
       INNER JOIN db2.table2 u2 
               ON u1.id = u2.id 
WHERE  u1.id IN( '12', '16' ) ** 
       OR ** u2.id = 17 

与条件

SELECT u1.*, 
       u2.* 
FROM   db1.table1 u1 
       INNER JOIN db2.table2 u2 
               ON u1.id = u2.id 
WHERE  u1.id IN( '12', '16' ) ** 
       AND ** u2.id != '' 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM