我遇到了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
我认为由于数据库名称中的点而发生错误。
答案 0 :(得分:0)
您正在尝试加入两个数据库!
JOINS适用于表格,因此,您必须使用名为values.companyname.be
和int.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.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
答案 2 :(得分:0)
如果你的数据库名称实际上有点(你为什么要自己做?)那么我需要在数据库名称周围使用`backticks`。
虽然从您的查询中不清楚哪些点是数据库名称的一部分,哪些是将数据库连接到表。