http://tech.pjin.jp/blog/2016/05/12/sql練習問題-問5/
の問題の
違うSQLありますか
No.1ベストアンサー
- 回答日時:
私が他の質問で回答したSQLは異なりますよ。
この正解のSQLは、国情報(countries)に、対象の国データがなくても国名をNULLとして抽出します。
私が提示したものは、国情報がないデータは抽出しません。
(マスタデータとトランザクションデータに整合性がないとか、そもそもDB設計としておかしいんじゃないの?)
あとこの正解は、ORDER BY がkickoffしかないため、開始時間が同一のレコードが複数ある場合、必ず同じ順序で抽出するとは限りません。
そういう意味で、私が書いた解答はpairing_idも第二ソートとして指定しています。
他にもやたらめったに書けば違うSQLなんて書けますが、視認性およびパフォーマンスがいいとは思いません。
正解のSQLに合わせた書き方であれば、以下でも同じ結果が得られます。
結合することなく、paringsから抽出された1レコードずつ、国名1、国名2を調べに行くわけですから、当然、元のクエリよりパフォーマンスは良くありません。
(データ量が100万件とかあると分かりやすい)
SELECT
kickoff AS キックオフ日時
, (SELECT c.name FROM countries c WHERE c.id = p.my_country_id) AS 国名1
, (SELECT c.name FROM countries c WHERE c.id = p.enemy_country_id) AS 国名2
FROM
pairings p
ORDER BY
kickoff
勉強なら、自分で手を動かして結果を確認して、トライ&エラーしないと身につきませんよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- SQL Server SQLについて 3 2023/02/24 12:25
- SQL Server SQLについて質問です。 日付値の計算の練習で、dual表を用いて、 今日の日付、誕生日、生まれてか 1 2022/05/13 20:42
- 数学 高校数学の質問です 文字を消去したり、置き換えたりしたら、残った文字に範囲がつくかどうか調べるという 4 2023/05/03 18:18
- その他(学校・勉強) もし、ある試験形式があって、1つ選べるとしたら A. 持ち込み不可 教科書の練習問題や小テストから抜 1 2022/06/27 16:53
- MySQL SQLの練習 1 2022/08/10 16:43
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- C言語・C++・C# condaコマンドに対応したプロキシ設定が思うようにならないようです。 2 2022/04/11 17:15
- 工学 電検3種の練習問題において、以下問題の答えが理解できません。答えは(5)となっておりますが、この場合 1 2022/11/09 00:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
VIEWの元のテーブルのindexって...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
-
複数テーブルのGROUP BY の使い...
-
sqlで、600行あるテーブルを100...
-
上位3位を求めるSQL文は?
-
select文のwhere句に配列を入れ...
-
selectした大量データをinsert...
-
graphvizで到達矢印の位置を選...
-
テーブルが5つの時の結合の仕...
-
エクセルの関数について教えて...
-
MySQLのint型で001と表示する方...
-
HAVING count()で重複したデー...
-
順位の取得
-
SQLにて特定の文字を除いた検索...
-
insertを高速化させたい
-
min句のSQLを改造し二番目に小...
-
URL と行番号の指定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
VIEWの元のテーブルのindexって...
-
SQLサーバから、項目の属性(型...
-
select文のwhere句に配列を入れ...
-
副問合せの書き方について
-
マイクラPC版のコマンドで効率...
-
Unionした最後にGROUP BYを追加...
-
selectした大量データをinsert...
-
SQLにて特定の文字を除いた検索...
-
[SQLServer] テーブル名からカ...
-
1テーブル&複数レコードの更新...
-
inner joinをすると数がおかし...
-
クエリ表示と、ADOで抽出したレ...
-
ある条件の最大値+1を初番する...
-
sqlで、600行あるテーブルを100...
-
複数テーブルのGROUP BY の使い...
-
insertを高速化させたい
-
PL/SQLの変数について
-
キー毎の、ある列のmaxのレコー...
おすすめ情報
Select句は1つです。