Mysql 我们如何对属于同一DBMS的两个不同数据库的两个表执行自然联接操作?

Mysql 我们如何对属于同一DBMS的两个不同数据库的两个表执行自然联接操作?,mysql,sql,database,join,schema,Mysql,Sql,Database,Join,Schema,我们如何对属于同一DBMS的两个不同数据库的两个表执行自然联接操作 假设关系r属于模式r,而关系s属于我的PC的同一DBMS软件中的模式s,那么为什么以下SQL查询不起作用: SELECT name FROM r JOIN s ON r.name = s.name 如果您使用的是SQL Server,那么 SELECT name FROM R.dbo.r JOIN S.dbo.s ON r.name = s.name 如果您的数据库是MySQL,请尝试以下操作: SELECT name FR

我们如何对属于同一DBMS的两个不同数据库的两个表执行自然联接操作

假设关系r属于模式r,而关系s属于我的PC的同一DBMS软件中的模式s,那么为什么以下SQL查询不起作用:

SELECT name FROM r JOIN s ON r.name = s.name

如果您使用的是SQL Server,那么

SELECT name FROM R.dbo.r JOIN S.dbo.s ON r.name = s.name
如果您的数据库是MySQL,请尝试以下操作:

SELECT name FROM R.r JOIN S.s ON r.name = s.name

这应该适用于MySQL


在r.name=s.name上从r.r join s.s中选择name


一般语法可以是:


从schema_name1.relation_name1连接schema_name2.relation_name2到common_attribute.relation_name1=common_attribute.relation_name2中选择属性

你犯了什么错误?请定义“不工作”。错误代码:1146表s.name不存在您使用的DBMS是什么?这些表是在不同的模式中还是在不同的数据库中?在问题中使用这两个词,但在大多数数据库管理系统中,它们不是同义词。
s.name
不是表。它是一个列引用。我看不出您的查询会如何产生这个问题。这是两个表r和s中的'column values's.name和r.name相同的条件的一部分。我使用的是MySQL Workbench,所以它是MySQL.then,要从模式s访问表,需要添加s。表名的前缀。编辑答案知道您的问题已经解决了,这太好了。