以下のSQL文は from ... where ... で書かれていますが
これを from ... join ... on ... で書き直したいのですが可能でしょうか?
select X.col1, U.col1
from TABLE_X as X ,TABLE_U as U
where U.REC_NO = (select B.REC_NO
from TABLE_A as A, TABLE_B as B
where A.ITME = B.ITEM
and X.DATA = A.DATA
fetch first 1 row only )
むずかしくしているのは、fetch first 1 row only なのですが
これがないと where句のかっこのなかのselect文は複数の結果を返します
しかし、その複数の結果はすべて同じものになることがデータ上保証されています
。
fetch first を除いて select distinct としても同じ結果となりますが
パフォーマンスがひどく低下してしまいます。
No.2ベストアンサー
- 回答日時:
on句は結合条件でfetch firstは抽出条件なのでwhere句をon句にする単純な書き直
しはできないと思います。やるとしたら副選択のselect文をfrom句に書いて一時テーブルとしてfetch firstをdistinctにするしかないような気がします
select X.col1, U.col1
from
(select distinct B.REC_NO
from TABLE_A as A, TABLE_B as B
where A.ITME = B.ITEM
and X.DATA = A.DATA) as Z
inner join TABLE_X as X on ...
inner join TABLE_U as U on ...
fetch first にくらべて distinct なので遅いような気がしますが
実際には副選択がないためにそための内部的に作られる一時表が軽くなるのでこちらのほうが速いと思います。
このとおりに試したら数倍速くなりました。
びっくりです。
一時表の作られ方を考えないといけないですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- PostgreSQL SQLで検索結果の記事を表示したい 1 2022/04/28 21:03
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- Oracle SQL update方法 2 2022/06/22 14:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル
-
データベースファイル(.db)を開...
-
警察はスマホに保存した動画や...
-
縦書きテキストボックスの表示"...
-
ファイルが壊れて読み取れませ...
-
データベースソフトの「TCARD f...
-
android版のMs accessはありま...
-
DBのタイプの指定とサイズにつ...
-
リスト形式の表とデータベース...
-
c言語の問題です。これを踏まえ...
-
「1004:アプリケーション定義...
-
Notion@リレーション値の取得...
-
Accessのリンクテーブルについて
-
CDデータ 泣き寝入りするしか...
-
Accessを開きなおすとテキスト...
-
googleフォームでインストール...
-
コンピュータ用語、データベー...
-
旧filemakerで和暦(令和など)...
-
QSL でのフォーム画面作成について
-
QRコードとバーコードについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースファイル(.db)を開...
-
Accessを開きなおすとテキスト...
-
警察はスマホに保存した動画や...
-
ACCESSのSQLで、NULLかNULLでな...
-
エクセルのフィルタ抽出が固まる
-
CSVファイルでテキストの改行の...
-
構文エラー:演算子がありませ...
-
Accessフォームからパラメータ...
-
20万行あるデータを動かしたい
-
Accessのリンクテーブルについて
-
コンピュータ
-
最新の日付とその金額をクエリ...
-
データベースとウェブ(WWW)の共...
-
更新クエリをリンクデータベー...
-
「1004:アプリケーション定義...
-
リスト形式の表とデータベース...
-
android版のMs accessはありま...
-
Excelフィルタ抽出で「検索して...
-
縦書きテキストボックスの表示"...
-
Notion@リレーション値の取得...
おすすめ情報