选择join mysql 2数据库

时间:2014-02-12 10:13:09

标签: php mysql database join

我遇到了CodeIgniter的问题,并从2个不同的数据库中加入了2个表。

我的第一个数据库:values.companyname.be

我的第二个数据库:int.companyname.be

所以我试图用代码点火器(或简单地用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 INNER JOIN int.activeme.be b on a.company_id = b.id'at   第1行

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

我认为由于数据库名称中的点而发生错误。

3 个答案:

答案 0 :(得分:0)

您正在尝试加入两个数据库!

JOINS适用于表格,因此,您必须使用名为values.companyname.beint.companyname.be的表格来查找错误。

您收到的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`

答案 1 :(得分:0)

我认为values.companyname.beint.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

答案 2 :(得分:0)

如果你的数据库名称实际上有点(你为什么要自己做?)那么我需要在数据库名称周围使用`backticks`。

虽然从您的查询中不清楚哪些点是数据库名称的一部分,哪些是将数据库连接到表。