• 締切済み

複数データベースへの問い合わせ

同一サーバーに(DB1,DB2,DB3)と複数のデータベースがあった場合(ユーザーは同じです)、SELECTの際に複数のDBに対しての問い合わせをすることはできるのでしょうか? それぞれのデータベースはテーブルも全く同じ構造で、 そこから特定のフィールドのレコードだけを引っ張り出して使いたいのですが、SQLをどのように書いていいのかがわかりません・・・ ヒントだけでもいただけると嬉しいです。よろしくお願いします。

みんなの回答

回答No.1

>同一サーバーに(DB1,DB2,DB3)と複数のデータベースがあった場合 MySQLでは、表名をデータベース名で修飾することで、同一サーバの異なるデータベースを一個のクエリで操作可能です。 DB1.TBL1やDB2.TBL1という記述になります。 「INSERT INTO DB1.TBL1 SELECT * FROM DB2.TBL1」 といった書き方になります。

tarou_hana
質問者

補足

ありがとうございます。 試しに、 $sql = "INSERT INTO db1.tbl1 SELECT * FROM db2.tbl1"; $res = mysql_qeury($sql); while($row = mysql_fetch_array($res)){ ... } とやってみたのですが、mysql_fetch_arrayの構文エラーになってしまいます。もしかして複数のデータベースから情報を抜き出す場合は、そのデータベース全てとあらかじめ接続しておかなければいけないのでしょうか? 通常DBの接続には、 mysql_connect('ホスト','ユーザー','パスワード'); mysql_select_db('DB'); となると思うのですが、複数の場合これはどのように接続すればよいのでしょう? mysql_select_db('DB1'); mysql_select_db('DB2'); mysql_select_db('DB3'); とやってみましたがやはりダメでした。 恐れ入りますが何かアドバイスいただけると嬉しいです。 宜しくお願い致します。

関連するQ&A