• 締切済み

この場合 JOIN . SELECTはできますか

JOIN.WHEREで...どなたかご教授下さい。 1)2つ以上のdatabase間でのtableの外部結合は出来ますか? やりたい事)実行環境は文末に記述しますが、1台目マシンのODBC(DSN1)でTABLE(A)とTABLE(B)を結合し、さらに2台目のODBC(DSN2)マシンのTABLE(C)を結合したい。 つまり、TABLE(A)+TABLE(B)+(TABLE(C)の状態にしたいのです。 まだ始めたばかりなので、上手く出来ませんでした。 可能・不可能も含めて、いい方法があったら教えて下さい。 実行環境) webサーバー : Apache 2.0.58 (winXP sp2) dbサーバー1 : DB2 UDB・・・ODBC接続 dbサーバー2 : MySQL・・・[MySQL][ODBC 3.51 Driver] [mysqld-5.0.22-community-nt] PHP : PHP Version 5.1.4

  • MySQL
  • 回答数1
  • ありがとう数0

みんなの回答

回答No.1

DB2の表とMySQLの表を、ジョインしたいと言ってますか? 異なるRDBMSの表を他のRDBMSで操作するという仕様は、国際規格SQL/MED仕様で規定されており、外部表と呼ばれます。 外部表を実装しているRDBMSは幾つかありますが、外部ファイルを扱うレベルまでで、他のRDBMSまでとなると、私の知る限り汎用機のRDBMSだけです。 汎用機のRDBMSは、1ヵ月数億円くらい出せば、ハード、OSなどを含めてレンタルできると思いますけど?

syosin-oyaji
質問者

補足

ご回答、ありがとうございました。 初心者なので、私の質問文章が悪かったのだろうと思います。 ・DB2でもMySQLでもODBC経由で接続すればJOIN出来るのかな?という  超初心者的な疑問・質問なのです。 ・実行環境に述べている状況で、2つのマシンにあるTABLEを1つに出来たら便利なんだけど・・・JOINがダメならダメでいいんです(他の方法を模索してみます)

関連するQ&A

  • PHPで2箇所のODBCサーバーを使うには?

    前回の質問とチョットかぶってしまいますが、何方かご教授ください。 Q1>2つODBCのサーバーのテーブルをJOIN?,SELECT?で結合したいのですが、その方法が解りません。どうやら 「ODBCLINKというのを使うらしい」までは検索出来たのですが、具体的な定義方法を教えて下さい。 Q2>または、1つ目のODBCのサーバーのテーブルをプライマリーで読込みながら、2つ目のODBCのサーバーのテーブルにJOIN?,SELECT?する方法なんて出来ますでしょうか? <動作環境> webサーバー : Apache 2.0.58 (winXP sp2) dbサーバー1 : DB2 UDB・・・ODBC接続 dbサーバー2 : MySQL・・・[MySQL][ODBC 3.51 Driver]        [mysqld-5.0.22-community-nt] PHP : PHP Version 5.1.4 ------------------------------------------------------------ 以上、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ??? SELECT WHEREが上手く出来ない(スペース文字があるフィールドの場合)<==教えて下さい

    恐れ入ります。どうしても解らないので教えて下さい。(ヒントでも) 質問)SELECTの結果が上手くいかない。 サーバー1の商品(スペースを含む20桁)と、サーバー2の商品が一致した場合、両方の内容を連結して表示したいのですが、商品の中のスペースが詰まってしまうのか、化けるのが原因なのか上手くできません。 実行環境)webサーバー : Apache 2.0.58 (winXP sp2)     dbサーバー1 : DB2 UDB・・・ODBC接続     dbサーバー2 : MySQL・・・[MySQL][ODBC 3.51 Driver] [mysqld-5.0.22-community-nt] PHP : PHP Version 5.1.4 実行結果) <商品コード:サーバー1のINPUT側> 1)'12345678901234567890' フル20桁 の場合は SELECT==>0K 2)'A         9' ←中にスペースありの場合SELECT==>WORNIG 画面に'A 9' と表示されて中のスペースが抜けてしまう。 --------------------------------------------------------------- Warning: odbc_exec() [function.odbc-exec]: SQL error: [MySQL][ODBC 3.51 Driver][mysqld-5.0.22-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '9 = sqprcd' at line 3, SQL state 37000 in SQLExecDirect in *ちなみに2)は<hrefでリンクしたときのパラメーターが下記のようになってしまい変です。 search.php?prprcd=A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%209 ===============================================================

    • 締切済み
    • PHP
  • スペース文字を、DBサーバーの文字タイプに変換する方法を教えて下さい

    本番の動作環-------------------------------------------- webサーバー : Apache 2.0.58 (winXP sp2) dbサーバー1 : DB2 UDB・・・ODBC接続 dbサーバー2 : MySQL・・・[MySQL][ODBC 3.51 Driver]          [mysqld-5.0.22-community-nt] PHP : PHP Version 5.1.4 ------------------------------------------------------- 異なるdbサーバーのTABLE(TB1)とTABLE(tb2)を結合するPHPなのですが、結合キー(2桁)に、フル桁入っている時はOKなのですが、実行結果の最終行のところみたいに、”S ”・・・スペースがある場合は、結合出来ないで泣き別れになってしまいます。 たぶん、dbサーバーが異なるのでスペースの内部文字コードが違うのかな?と思うのですが、良きアドバイスをお願いいたします。 実行結果------------------------------------------------ key ODBC1(TB1)    | ODBC2(tb2) CD 国 名 ローマ字1 | 首 都 ローマ字2 ---------------------|-------------------------------- AA 日本  NIPPON   | 東京  Tokyo BB 中国  CHAINA   | 北京  Pekin DD 米国  U.S.A    | ワシントン Washington S S国  S-KUNI    |             <==泣き別れ S              | S首都  S-SYUTO <==泣き別れ S S国  S-KUNI    | S首都  S-SYUTO  <==good!(正解) ========================================================= dbサーバーをMysqlの1つだけにしたPHPの場合はgood!(正解)できます。 こんな質問で理解してもらえますか?

    • ベストアンサー
    • PHP
  • データベースに接続できない

    『PHP5逆引き大全500の極意』にあるサンプルスクリプトで PHPとMYSQLと学んでいます。 XAMPPもインストールし、スタンドアロンでMysqlを操作しようと しています。 しかし、どのサンプルスクリプトをいじっても接続できません。 require("config.php"); header("Content-Type: text/plain; charset=EUC-JP"); $db = odbc_connect(ODBC_CONNECT_DSN, ODBC_CONNECT_USER, ODBC_CONNECT_PASS) or die("データソースに接続できません!\n"); でエラーがでています。 ちなみにconfig.phpの内容 // DSN define("ODBC_CONNECT_DSN", "DSN=sample_db;"); // ユーザー名 define("ODBC_CONNECT_USER", "username"); // パスワード define("ODBC_CONNECT_PASS", "password"); // テーブル名 define("ODBC_TABLE_NAME", "php500"); となっています。SQL文を実行し、テーブルを作りましたが、 上手く言っているかどうか・・・。 文字コードをちゃんと設定していないせいか、????????のような データがカラムに入っています。 サンプルスクリプト上、データベースが自動作成されるスクリプトも あるのですが・・・。 1.useename、userpassの設定 2.phpMyAdminでデータベースを作成する方法 3.データベース作成時の文字コードの設定。utf?sjis? についてヒント頂けたら幸いです。

    • ベストアンサー
    • MySQL
  • ODBCを使用する場合のファイルDSNの設定

    環境 WindowsXP Pro Visual Studio.NET 2003 インストールしたもの MySQL(ver:4.1.11) MyODBC-3.51.11-1-win.exe ODBC .NET Data Provider(ver:1.0.4030.0) (MDAC(ver:2.8)はいつのまにか勝手に入ってました) 「コントロールパネル」→「管理ツール」→「データ ソース (ODBC)」から「ODBCデータソースアドミニストレータ」を起動して、ファイルDSNタブから追加で【MySQL ODBC 3.51 Driver】を選択し「適当な名前」を入れて、「適当な名前」.dsnがファイルDSNに作成されるのですが、ダブルクリックしてみると 「一般エラー:DSNファイルC:\~~~~.dsnが無効です。」となってしまいます。 ユーザーDSNとシステムDSNはちゃんと追加でき、「Connector/ODBC」も設定でき、Access2003、VB.NETからMySQLで作ったテーブルは読み取れました。 VB.NETのサーバーエクスプローラから接続の追加で、データリンクプロパティのプロバイダタブから「Microsoft OLE DB Provider for ODBC Drivers」 を選び、接続タブから「接続文字列を使用する」にチェックを付けビルドで開いたデータソースの選択欄にファイルDSNで作った.dsnは表示されますが、選択してもデータリンクエラー「ドライバへの接続中にエラーが発生したため、操作を実行できません。」となりやはりファイルdsnが使えません。 どうやってファイルDSNを設定したらいいのでしょうか?

  • WEBとDBを別々で構成する場合について

    はじめて質問させていただきます。 Linux ES4 環境でWEBとDBを個別に立上げています。 DBサーバにはMySQLをインストールし、WEBサーバからDBサーバのMySQLに接続したいのですが、MySQLのどれをインストールすべきかわかりません。 下記が現在悩んでいる点です。 1、WEBサーバにインストールするMySQLはClientなのでしょうか? 2、DBサーバにインストールするMySQLはServerなのでしょうか? 3、WEBサーバとDBサーバの2台間をつなげるためには、MySQL Connect/ODBCをインストール設定するのでしょうか? 御手数ですがどなたか御教授願えませんでしょうか。 宜しく御願いいたします。

    • ベストアンサー
    • MySQL
  • Win95マシンへのMyODBCインストール

    Win95マシンへのMyODBC 3.51-02のインストールがうまくいかず、とても困っています。 ネット検索もいろいろやっているのですが、解決は見つからず...八方ふさがり、お手上げです。 MySQLのWebページからダウンロードしたMyODBCを実行してもだめで、しかも、「ODBCデータソースアドミニストレータ」でのDSN登録もだめです。 「ODBCデータソースアドミニストレータ」の「ドライバ」のリストにはMyODBC 3.51-02が表示されているので、ファイルDSNやシステムDSNの画面で「追加」を実行すると次のようなエラーが出ます。 ユーザDSNとシステムDSNでは「MySQL ODBC 3.51 Driver ODBCのセットアッププログラムを読み込むことができません(システムエラーコード1157)」 ファイルDSNでは、とりあえず登録はできるのですが、Database,Serverなどを指定しても「指定したファイル データソース パラメータを使用して接続することはできません」 登録した後で「構成」を見ようとしても、「DSNファイルは無効です」 職場で同じようにインストールしたWin95マシンは20台はあると思うのですが、3台だけこんな現象が出ています。 ためしにMyODBCを最新の3.51-04にしてもだめでした。 解決方法かヒントをご存知の方、お助けください。 よろしくお願いします。

  • ODBC接続でデータ件数を求める方法を教えてください

    いつもお世話になっております。 ODBCサーバー:IBM DB2(UDB)なのですが、下記コードを実行しても 件数が表示されず取得できませんでした。 何方か上記サーバーで件数を取得する方法をご存知でしたら、ご教授お願いいたします。(表示データ件数のコントロールをしたいのです) $con2 = odbc_connect($ODBCDSN2, $DSNUSER2, $DSNPASS2); $sql2 = "SELECT Count(*) AS cnt FROM tabl1"; $rst2 = odbc_exec($con2, $sql2); $col2 = odbc_fetch_array($rst2); $tcnt = $col2[cnt]; print "tcnt="; print $tcnt; 上記コードを、ODBC MySQLで実行すると件数が表示されますのでIBM DB2(UDB)固有の 状況だと思うのですが・・・どうしたらいいのか解りません。

    • 締切済み
    • PHP
  • PHPからMySQL・異なるDBにコピー

    PHPからMySQL・異なるDBに接続し同じ構造のテーブルのデータをコピーすることは可能ですか? 以下を実行するとクエリが実行されず「コピーできません」が表示されてしまいます。 どのようにすればコピーできるか教えてください。 $connect1 = mysql_connect("localhost", "user1", "pass1") ; mysql_select_db("db1", $connect1); //db1内にtable1 $connect2 = mysql_connect("localhost", "user2", "pass2") ; mysql_select_db("db2", $connect2); //db2.内にtable2 $sql = "INSERT INTO `db1` . `table1` SELECT * FROM `db2` .`table2`;"; $result = mysql_query($sql, $connect1)or die("コピーできません"); //$result内「$connect1」でも「$connect2」結果は同じです。 //table1とtable2の構造は同じです。

    • ベストアンサー
    • PHP
  • PHP+MySQL 内部結合(INNER_JOIN)がうまく行きません。

    以下の文で「client_master」テーブルと「jobmaster0717」テーブルを内部結合させようとしているのですが、うまく行きません。どこがおかしいのでしょうか? <?php  // データベースサーバへの接続・データベースの選択  $db = mysql_connect('localhost','test','password');  $db_name = 'test';  mysql_select_db($db_name,$db);  // 処理対象テーブル  $tbl_name1 = "client_master";  $tbl_name2 = "jobmaster0717";    // 内部結合(INNER JOIN句)  $str_sql1 = "SELECT * FROM {$tbl_name1}"       . " INNER JOIN {$tbl_name2}"       . " ON {$tbl_name1}.company_ID"       . "  = {$tbl_name2}.client_ID;";  $rs1 = mysql_query($str_sql1,$db);  print "\"{$str_sql1}\"<br>\n";  // 結果セットの表示  show_rs($rs1,$db);  print "<br>\n";  // 結果セット(結果ID)の開放  mysql_free_result($rs1);    // データベースサーバの切断  mysql_close($db); ?>