Mysql 跨数据库连接

Mysql 跨数据库连接,mysql,sql,database,Mysql,Sql,Database,我有两个数据库——一个叫做“autp”(有一个叫做log的表),另一个叫做“charp”(有一个叫做char的表) 我需要将id上的两个元素内部连接起来,以获得cg,但仅限于受特定操作影响的元素(action='xyz')。如何跨数据库加入?以前,我将所有表都放在一个数据库中。我试过了 选择autp.log.id… 但是没有运气。(MySQL 6.0)我怀疑这只是一个语法问题。不要忘记所有者。如果autp.dbo.log.id归dbo所有,它可能会工作得更好。顺便说一句,这是表和列的可调整命名…

我有两个数据库——一个叫做“autp”(有一个叫做log的表),另一个叫做“charp”(有一个叫做char的表)

我需要将
id
上的两个元素内部连接起来,以获得
cg
,但仅限于受特定操作影响的元素(
action='xyz'
)。如何跨数据库加入?以前,我将所有表都放在一个数据库中。我试过了

选择autp.log.id…


但是没有运气。(MySQL 6.0)我怀疑这只是一个语法问题。

不要忘记所有者。如果autp.dbo.log.id归dbo所有,它可能会工作得更好。顺便说一句,这是表和列的可调整命名…尽量避免使用表名的保留术语(如char和log)。[autp].[dbo].[log].[id]可能是您将其称为SQL Server Syntax的方式。@您使用的是SQL Server Syntax,为什么会出现令人困惑、难看和多余的标识符引号(backtick
`
)角色?我只是把它们放在那里等着eggyal写一些非常诗意的评论P。是的,只有char应该有背景标记,但为了对称,我犯了罪。即使是
char
也不需要它们。请参阅:“例外:限定名称中句点后的单词必须是标识符,因此即使保留也无需引用”。
select a.id,a.action,b.cg
from `autp`.`log` a
join `charp`.`char` b
on b.id = a.id WHERE action = 'xyz'
select a.id,a.action,b.cg
from `autp`.`log` a
join `charp`.`char` b
on b.id = a.id WHERE action = 'xyz'