[解決済み] クロスジョインの用途は?
2022-10-29 04:16:38
質問
クロスジョインは2つのセットのタプルに対してデカルト積を実行します。
SELECT *
FROM Table1
CROSS JOIN Table2
このようなSQL操作が特に有用なのはどのような状況でしょうか?
どのように解決するのですか?
特定の衣服のサイズや色の情報のように、完全に入力したいグリッドがある場合。
select
size,
color
from
sizes CROSS JOIN colors
1日のうち1分ごとの行を含むテーブルが欲しい、それを使って1分ごとにプロシージャが実行されたことを確認したい、だから3つのテーブルを掛け合わせるかもしれません。
select
hour,
minute
from
hours CROSS JOIN minutes
あるいは、1 年間のすべての月に適用したい標準的なレポート仕様のセットがあるとします。
select
specId,
month
from
reports CROSS JOIN months
これらをビューとして維持することの問題点は、ほとんどの場合、特に服に関しては完全な製品を望んでいないことです。このような場合は
MINUS
ロジックをクエリに追加して、取り扱わない特定の組み合わせを削除することはできますが、デカルト積を使用せず、他の方法でテーブルに入力する方が簡単だと思うかもしれません。
また、思ったより行数が多いテーブルでクロスジョインを試すことになるかもしれません。
WHERE
節が部分的または完全に欠落している可能性があります。このような場合、DBAはすぐにその欠落をあなたに通知するでしょう。通常、DBA は満足しないでしょう。
関連
-
windows mysql prompt access denied for user ''@'localhost' to database.
-
[解決済み] SQL Server : 列を行に変換する
-
[解決済み] UNIONとUNION ALLの違いは何ですか?
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] SQL JOIN - WHERE句とON句の比較
-
[解決済み] PostgreSQLで一重引用符で囲まれたテキストを挿入する
-
[解決済み] LINQ to SQLの内部結合の構文とは何ですか?
-
[解決済み] SQLサーバーで行を列に効率的に変換する
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み] SQL select join: すべてのカラムに 'prefix.*' というプレフィックスを付けることは可能ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
plsql-stored-procedure ORA-06550 エラー処理
-
[解決済み] Oracle Trigger ORA-04098: トリガーが無効で、再バリデーションに失敗しました。
-
[解決済み] 指定されたスキーマにテーブルが存在するかどうかを確認する方法
-
[解決済み] SQL Server : 列を行に変換する
-
[解決済み] ...値に挿入する ( SELECT ... FROM ... )
-
[解決済み] テーブルネーミングのジレンマ:単数形と複数形の名前【非公開
-
[解決済み] T-SQLでnot equalには!=と<>のどちらを使うべきですか?
-
[解決済み] SQL JOIN - WHERE句とON句の比較
-
[解決済み] SQLの複数列の順序付け
-
[解決済み] SQLのインデックスとは何ですか?