電子書籍の厳選無料作品が豊富!

同一サーバーに(DB1,DB2,DB3)と複数のデータベースがあった場合(ユーザーは同じです)、SELECTの際に複数のDBに対しての問い合わせをすることはできるのでしょうか?

それぞれのデータベースはテーブルも全く同じ構造で、
そこから特定のフィールドのレコードだけを引っ張り出して使いたいのですが、SQLをどのように書いていいのかがわかりません・・・

ヒントだけでもいただけると嬉しいです。よろしくお願いします。

A 回答 (1件)

>同一サーバーに(DB1,DB2,DB3)と複数のデータベースがあった場合



MySQLでは、表名をデータベース名で修飾することで、同一サーバの異なるデータベースを一個のクエリで操作可能です。

DB1.TBL1やDB2.TBL1という記述になります。

「INSERT INTO DB1.TBL1 SELECT * FROM DB2.TBL1」

といった書き方になります。

この回答への補足

ありがとうございます。
試しに、

$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');
とやってみましたがやはりダメでした。

恐れ入りますが何かアドバイスいただけると嬉しいです。
宜しくお願い致します。

補足日時:2007/11/19 14:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!