Php 选择加入mysql 2数据库
我在使用CodeIgniter和连接来自2个不同数据库的2个表时遇到一些问题 我的第一个数据库:Php 选择加入mysql 2数据库,php,mysql,database,join,Php,Mysql,Database,Join,我在使用CodeIgniter和连接来自2个不同数据库的2个表时遇到一些问题 我的第一个数据库:values.companyname.be 我的第二个数据库:int.companyname.be 所以我试图用CodeIgniter(或者简单地用php)和MySQL连接这两个数据库 我有这个问题,但没用 public function get_values(){ $query = $this->db->query('SELECT a.id,a.foreign_i
values.companyname.be
我的第二个数据库:int.companyname.be
所以我试图用CodeIgniter(或者简单地用php)和MySQL连接这两个数据库
我有这个问题,但没用
public function get_values(){
$query = $this->db->query('SELECT a.id,a.foreign_id,b.id,b.name FROM values.companyname.be a INNER JOIN int.companyname.be b ON a.foreign_id = b.id');
return $query;
}
当我尝试执行它时,我的网站显示:
发生数据库错误
错误号码:1064
您的SQL语法有错误;检查手册
对应于您的MySQL服务器版本,以便使用正确的语法
靠近“.be内部连接int.activeme.be b ON a.company_id=b.id”at
第1行
我认为发生错误的原因是数据库名称中的点。您正在尝试连接两个数据库 联接是用于表的,因此,除非必须使用名为
values.companyname.be
和int.companyname.be
的表,否则sql查询是错误的
您得到的MySQL错误告诉您第二个
是不需要的。试试这个:
SELECT a.id, a.foreign_id, b.id,b.name
FROM `values.companyname.be`.`coupon` a
INNER JOIN `int.companyname.be`.`company` b
ON a.foreign_id = b.id
强调语法:
`dbnname`.`table.name`
我认为
values.companyname.be
和int.companyname.be
是您的表名。因此,在表名周围使用`(倒勾)
SELECT
a.id,a.foreign_id,b.id,b.name
FROM `values.companyname.be` a
INNER JOIN `int.companyname.be` b
ON a.foreign_id = b.id
如果您的数据库名称中实际上有点(为什么要对自己这样做?),那么您需要在数据库名称周围使用'backticks'
但是,从查询中不清楚哪些点是数据库名称的一部分,哪些点将数据库连接到表。在数据库名称周围使用反勾号(`)。在这种情况下,sql解析器将查找名为
values.companyname.be
的表(不会找到它)。
SELECT
a.id,a.foreign_id,b.id,b.name
FROM `values.companyname.be` a
INNER JOIN `int.companyname.be` b
ON a.foreign_id = b.id