我正在尝试研究如何使用 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 组合它们。但是,这是行不通的,因为它无法将数据库名称识别为数据库(无论如何它都不会有每个数据库的连接设置)。我认为 ORDER BY 在这里也放错了地方。我不确定我应该在哪里为每个查询指定数据库,或者这种方法是否有效。
有任何想法吗?