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が間違った場所にあると思います。各クエリのデータベースをどこで指定する必要があるか、またはこの方法がまったく機能するかどうかはわかりません。
何か案は?