- ベストアンサー
SQL文のテーブル結合する時の性能について
HAL007の回答
- HAL007
- ベストアンサー率29% (1751/5869)
>>参照系のSQLでそれぞれ1万件以上あるテーブル同士を・・ 質問の説明だけでは、具体性に欠けどの様な状況なのかわかりません。 使っているデータベース(DB2,Oracle、Access、etc.,)や リソースが分からないとアドバイス出来ませんよ。 汎用機なら数百万件のテーブル同士を結合する事など 朝飯前ですし PCでAccessを使っていても万単位ならPCのスペックで 左右されたりします。
関連するQ&A
- 2つのテーブルを結合して合計(SQL文)
いつもお世話様です。 同じ項目を持っている2つのテーブルがあります。 --2000年テーブル-- 商品名 金額 えんぴつ 100 消しゴム 200 赤えんぴつ 150 --2001年テーブル-- えんぴつ 100 消しゴム 200 ボールペン 200 赤えんぴつ 150 この2つのテーブルの合計金額(1100)をSQL文一回で求めたいのですが、 どのようにしたら良いでしょう。 ユニオンで結合までは、できるのですが、SUMの方法がわかりません。 それとも、全然違う方法があるのでしょうか。 よろしくお願いします。
- ベストアンサー
- SQL Server
- 他のDBのテーブルと内部結合が可能でしょうか
他のDBのテーブルと内部結合が可能でしょうか sql sever 2005 を使用します。このたび、データベースAのテーブルaを定期的に検索するsqlを作成することになりました。このsql文は、ストアードプロシージャとして登録予定です。 その際、テーブルbを内部結合で参照します。例として、テーブルaは社員番号があり、テーブルbは社員番号、社員名があります。(テーブルbは社員マスター) テーブルaを参照し、その社員名を内部結合(INNER JOIN)で取り出します。 ここで、テーブルa,bが共に、同じデータベース内にある場合は、問題ないのですが、 テーブルbは、別のマシンのsql sever 上にあります。(したがって、データベース名も異なります) このような状態で、内部結合による参照は可能でしょうか? また、内部結合ができないまでも、ストアードプロシージャで、データベースAのテーブルaを参照しながら、別のマシンのデータベースBのテーブルbを参照することは、原理的に可能でしょうか。 なお、データベースは共にsql server 2005を使用します。
- ベストアンサー
- SQL Server
- 内部結合のSQL文
次のような条件でのSQL文はどのように書けばよいのでしょうか? 売上テーブル(フィールドは「売上No.」)と売上明細テーブル(フィールドは「売上No.」「行番号」)を内部結合します。 結合の条件は売上明細テーブルの売上No.が売上テーブルの売上No.と等しいもの、かつ売上明細テーブルの行番号の一番小さいもの、です。 行番号はユニークですが、必ずしも1から順に振られているとは限りません。 どうぞよろしくお願いします。
- ベストアンサー
- その他(データベース)
- 【SQL文】このような結合UNION?できますか?
SQL文でテーブルを結合し、insertしたいと思っています。 例) テーブル名:tb1, カラム:A1,A2 テーブル名:tb2, カラム:B1(b1,b2,b3,,,,) テーブル名:tb3, カラム:C1(c1,c2,,,,,,) tb2とtb3を結合させてtb1へinsertしたいと思いますが、 tb2とtb3リレーションを組める要素がありませんし、データの型も違います。 |A1 | A2 __|____|_____ 1 |b1 |c1 _____________ 2 |b1 |c2 _____________ 3 |b2 |c1 _____________ 4 |b2 |c2 _____________ 上記のような結果を作ってtb1へINSERTしたいのですが、UNION結合を使えるのか どうかすらわかりません。ネットで調べたのですが、突破孔を見つけることができ ませんでした。 ちなみにACCESSで結合までの結果を得るのに、SELECT B1.tb2,C1.tb3 from tb2,tb3 という文で出せましたが,mySQLではダメでした。 どなたかご教授おねがいできますでしょうか?
- ベストアンサー
- MySQL
- “SQL文を作るSQL”の書き方ってありますか?
“SQL文を作るSQL”の書き方ってあるのでしょうか? 例えばなのですが、表同士を大量に結合して条件に当てはまったものをアップデートするようなSQLを書く場合、文法を間違うとエライこちゃ!になる場合がありますよね。 そういう場合って結合するんじゃなくて結合したSELECT文を使って条件だしをして1件1件単純アップデートをした方が安心ですよね。 (定期処理であれば効率が悪いですが・・・だったらプロシージャですか・・・というところになりますがごくたまにや1回きりのデータ変更など) そういったことをやるほうほうはありますでしょうか? 仕様はSQL99です。
- ベストアンサー
- Oracle
- テーブル結合について、下記SQLをANSI結合の書き方で表したい。
テーブル結合について、下記SQLをANSI結合の書き方で表したい。 select * from (select key from A union select key from B union select key from C) X, A,B,C where X.key=A.key(+) and X.key=B.key(+) and X.key=C.key(+) このSQLをANSI結合の記述で書きたいのですが、 (+)での結合文になれておらず試行錯誤しております。 下記のようなのかなとは模索しておりますが、 手元に実行環境がなくわかりません。 また、要所気付く点などありましたら、ご指摘願います。 select A.*, B.*, C.* from (select key from A union select key from B union select key from C) X, LEFT JOIN A ON X.key=A.key LEFT JOIN B ON X.key=B.key LEFT JOIN C ON X.key=C.key
- ベストアンサー
- Oracle
- 固定値を含む結合と複数テーブルの結合について
「1.固定値を含む結合」と「2.複数テーブルの結合」について教えて下さい。 最近oracleを使い始めてSQLで表の結合を書く場面があるんですが LEFT(RIGHT) JOIN を使うのか、(+)を使って書くのかで迷っています。 LEFT(RIGHT) JOINだと固定値を含めて外部結合しようとするとエラーになってしまいます。 それが嫌で(+)を使っていたんですが 今度は複数のテーブルを(+)で結合しようとするとエラーになってしまいます。 (AテーブルとBテーブル、AテーブルとCテーブルなど?) こういう場合はどうすれば良いのでしょうか? とりあえず副参照をFROMに指定して対処してるんですが 何かきちんとした書き方があるのでしょうか?誰か教えて下さい。
- ベストアンサー
- Oracle
- MySQL テーブルの結合
顧客ごとにテーブルを作る香ばしいプログラムのSQL文を書くことになりました。 user_0001 user_0002 user_0003 user_0004 user_0005 といった具合にどんどん増えていきます。 カラムは仮に id, name, tel が入っているとします。 プログラムの修正は行えません。 通常JOIN句でテーブルの結合を行うと思うのですが、「user_」という文字列を含んでいるテーブルを全て結合せよ!みたいな命令文はSQLで書けるのでしょうか? 無理、無駄、素直にプログラムで出せ、というアドバイスでも構いませんのでよろしくお願いします。
- ベストアンサー
- MySQL
- テーブルの結合について
テーブルの結合について悩んでおります。 一人の情報をテーブルを結合する事は、出来たのですが、 下記のように、ユーザー情報テーブルと そのペアの情報が別にあり、 テーブルを結合した情報を取得したいのですが、 どのようなSQL文を書けばよいでしょうか、 また、テーブル設計を変更した方がよいでしょうか、 よろしくお願いいたします。 user_table no name sex 1 AAA man 2 BBB woman pear_table user_no1 user_no2 1 2 結果 name1 sex1 name2 sex2 AAA nam BBB woman
- ベストアンサー
- MySQL
お礼
御回答ありがとうございます。 漠然とした質問で申し分けありませんでした。