Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择加入mysql 2数据库_Php_Mysql_Database_Join - Fatal编程技术网

Php 选择加入mysql 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

我在使用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_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