【发布时间】:2013-08-30 12:07:08
【问题描述】:
我正在尝试研究如何使用 codeigniter 将 2 个 mysql 数据库中同一张表的结果组合起来。
两个表的列名相同,但数据库的连接设置不同。
我目前正在尝试这个:
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 组合它们。但是,这是行不通的,因为它无法将 db 名称识别为数据库(并且无论如何它都不会有每个 db 的连接设置)。我认为 ORDER BY 也放错了地方。我不确定我应该在哪里为每个查询指定数据库,或者这种方法是否可行。
有什么想法吗?
【问题讨论】:
标签: mysql codeigniter union multiple-databases