[英]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'
proj1
和project2
是同一服务器中的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.