我想了解如何结合使用codeigniter的2个mysql数据库中的同一个表的结果。在codeigniter中结合来自2个数据库的结果
这两个表具有相同的列名,但数据库具有不同的连接设置。
目前,我正在尝试此:
public function getAllNames() {
$sql1 = <<SQL
SELECT
id, name, CONCAT(name, ' (', id, ')') AS name2
FROM
db1.table
ORDER BY name
SQL;
$sql2 = <<SQL
SELECT
id, name, CONCAT(name, ' (', id, ')') AS name2
FROM
db2.table
ORDER BY name
SQL;
$q = $this->db->query($sql1." UNION ".$sql2);
return $q->result();
}
在2个变量存储每个数据库相同的查询,然后尝试使用UNION将它们组合在一起。但是,这不能工作,因为它不能将数据库名称识别为数据库(并且它不会以这种方式为每个数据库设置连接设置)。我认为ORDER BY在这里也是错误的地方。我不知道我应该在哪里为每个查询指定数据库,或者如果此方法可以工作。
任何想法?
我最终做了一个不同的方式,因为我发现从每张表需要的列不完全相同(尽管我被告知他们是!),但这工作。谢谢你,Gautam3164。 –