HOME»応用情報技術者試験掲示板»SQLの実行順序に関して
投稿する
合ってます。
順番的にはORDER BYが後です。
一番最初のSELECTです。
一番分かりやすい基準としては、インデントの深さ(一文字目の縦のライン)です。
例えば以下の例では一文字目の'S'と'O'が同じ縦のラインなのでペアだと判断できます。
参考になりましたら幸いです。
SQLの実行順序に関して [6128]
ささきさきさん(No.1)
平成30年春期試験 午後試験 問6 データベース設問3に関しての質問です。
SQL文の穴埋めをする問題についてですが、SQLの実行順序がよくわかりません
ネットや生成AIで調べてみると
①h→i→g→jなのかなとも思いつつ
解説には
②h→i→j→gと記載があります
一番最初のSELECT,
FROM後の(SELECT~
と2つありますが、この四角内のJの内容はどちらの命令にかかっているのでしょうか
またどのような見方をすれば、その判断ができるでしょうか
SQL文の穴埋めをする問題についてですが、SQLの実行順序がよくわかりません
ネットや生成AIで調べてみると
①h→i→g→jなのかなとも思いつつ
解説には
②h→i→j→gと記載があります
一番最初のSELECT,
FROM後の(SELECT~
と2つありますが、この四角内のJの内容はどちらの命令にかかっているのでしょうか
またどのような見方をすれば、その判断ができるでしょうか
2026.01.01 19:28
応用太郎2さん(No.2)
> ①h→i→g→jなのかなとも思いつつ
合ってます。
順番的にはORDER BYが後です。
> この四角内のJの内容はどちらの命令にかかっているのでしょうか
一番最初のSELECTです。
> またどのような見方をすれば、その判断ができるでしょうか
一番分かりやすい基準としては、インデントの深さ(一文字目の縦のライン)です。
例えば以下の例では一文字目の'S'と'O'が同じ縦のラインなのでペアだと判断できます。
SELECT...
... (省略)
ORDER BY...
以下の例では縦のラインに一致しないので別のSELECTとのペアである可能性が高いです。... (省略)
ORDER BY...
... (省略)
SELECT...
... (省略)
ORDER BY...
[検収機能の作成]の図2ではjの虫食い箇所が最初のSELECTと同じ縦のラインから始まっているので判断が可能です。SELECT...
... (省略)
ORDER BY...
参考になりましたら幸いです。
2026.01.01 20:48
GinSanaさん(No.3)
★AP プラチナマイスター
①h→i→g→jが正解で、オーダーバイがセレクトより後にならないといけないのは、セレクトでつけたエイリアス(as○○)をオーダーバイでは利用できるから、後になる、という理屈になります。
まず、内部表(フロムのテーブル)がどこからどこまでなのか?からきて、丸括弧でORDまでか、とわかって、駆動表(ジョインのテーブル)が次はどこからどこまでなのか?が、テーブル自体はDLIまでか、結合条件はONからか、となるわけですが、
空欄jの場合インデントの見た目を無視すればありえる理屈は結合条件の続きかウェアー条件、グループバイ条件、ハビング条件、オーダーバイ条件と絞られるわけですが、あとは解説の通り本文からソート要否の記述を読み取るのが手っ取り早いです。頭の本来のセレクトから他の条件を消していってもよいのですが。
>どのような見方をすれば、その判断ができるでしょうか
まず、内部表(フロムのテーブル)がどこからどこまでなのか?からきて、丸括弧でORDまでか、とわかって、駆動表(ジョインのテーブル)が次はどこからどこまでなのか?が、テーブル自体はDLIまでか、結合条件はONからか、となるわけですが、
空欄jの場合インデントの見た目を無視すればありえる理屈は結合条件の続きかウェアー条件、グループバイ条件、ハビング条件、オーダーバイ条件と絞られるわけですが、あとは解説の通り本文からソート要否の記述を読み取るのが手っ取り早いです。頭の本来のセレクトから他の条件を消していってもよいのですが。
2026.01.01 22:27
ささきさきさん(No.4)
解答拝見いたしました。
応用太郎2さん、GinSanaありがとうございます。
お二方のおかげでかなり視界が開けてきました。
まだ、SQL文の処理順序や今回でいうとどことどこがLEFT OUTER JOINされているのかすぐに判断できず一通り解ききるのに45分以上かかってしまっています。
継続して、試験勉強に励もうと思います
ありがとうございました。
応用太郎2さん、GinSanaありがとうございます。
お二方のおかげでかなり視界が開けてきました。
まだ、SQL文の処理順序や今回でいうとどことどこがLEFT OUTER JOINされているのかすぐに判断できず一通り解ききるのに45分以上かかってしまっています。
継続して、試験勉強に励もうと思います
ありがとうございました。
2026.01.02 12:44
