SQL JOIN ビジュアライザー

インタラクティブなベン図、編集可能なサンプルデータ、ライブ結果テーブルでSQL JOINの種類を視覚化します。

このツールについて

SQL JOIN ビジュアライザーは、さまざまなSQL JOIN操作がどのように機能するかを 理解するための無料のブラウザベースツールです。抽象的な定義を暗記する代わりに、 インタラクティブなベン図とリアルタイムで更新されるライブデータテーブルで 各JOINタイプの動作を確認できます。

このツールは5つの基本的なJOINタイプをサポートしています:INNER JOINは 両方のテーブルからマッチする行のみを返します。LEFT JOINは左テーブルの すべての行と右テーブルのマッチする行を返します。RIGHT JOINはその逆です。 FULL OUTER JOINは両方のテーブルのすべての行を返し、マッチしない場所に NULLを埋めます。CROSS JOINは結合条件なしで両テーブルのデカルト積を 生成します。

2つの編集可能なサンプルテーブル(Table AとTable B)がデフォルトデータ付きで 提供されています。行の追加、削除、変更を行ってさまざまなデータシナリオを 実験できます。結合条件は2つのテーブル間のidカラムのマッチに基づいています。 データを変更したりJOINタイプを切り替えると、結果テーブルが即座に更新され、 マッチした行とNULLが埋められた行が色分けされるので、どのレコードが含まれ、 なぜ含まれるのかを正確に確認できます。

各JOINタイプのSQLクエリプレビューが生成され、実際のデータベースで使用する 正確な構文が表示されます。このクエリをクリップボードに直接コピーして出発点として 使用できます。JSONデータをSQLに読み込む前に作業する場合は、 JSON to SQL変換ツールがINSERT文の生成に役立ちます。 より複雑なスキーマ作業には、SQL to Prisma変換ツールJSON to SQLスキーマジェネレーターをご覧ください。

すべての処理はブラウザ内で完全に実行されます。データがサーバーに送信されることは ないため、実際のテーブル構造や本番データでも安全に使用できます。SQLを学ぶ学生、 クエリ結果をデバッグする開発者、JOINの質問が頻出する技術面接の準備をする方に 最適なツールです。

使い方

  1. 上部のボタンバーからJOINタイプを選択します。ベン図が更新され、含まれる領域がハイライトされます。
  2. 2つのサンプルテーブル — Table A(左)とTable B(右)— を確認します。サンプルデータがプリロードされています。
  3. いずれかのテーブルの任意のセルをクリックして新しい値を入力して編集します。Add Rowボタンで行を追加、マイナスボタンで行を削除できます。
  4. 下のResultテーブルがライブで更新されるのを確認します。マッチした行は黄色でハイライトされ、NULLが埋められた行は薄く表示されます。
  5. SQL Queryプレビューで選択したJOINタイプの正確なSQL構文を確認します。CopyをクリックするかCtrl+Shift+Cを押してコピーします。
  6. Resetをクリックしてデフォルトのサンプルデータに戻し、INNER JOINに戻ります。
  7. エッジケースを実験:重複ID、空のテーブル、マッチするIDがないテーブルなどを試して、各JOINの動作を確認してください。

人気のSQL JOIN例

すべてのSQL JOIN例を見る →

よくある質問

INNER JOINとLEFT JOINの違いは何ですか?

INNER JOINは両方のテーブルでマッチする値がある行のみを返します。LEFT JOINはマッチの有無に関わらず左テーブルのすべての行を返し、マッチがない場合は右テーブルのカラムにNULLを埋めます。ベン図では、INNER JOINは重なり合う中央部分のみをハイライトし、LEFT JOINは左円全体をハイライトします。

FULL OUTER JOINはいつ使うべきですか?

いずれかのテーブルにマッチしない行があっても、両方のテーブルのすべてのレコードが必要な場合にFULL OUTER JOINを使用します。データの照合、2つのデータセット間の不一致の検出、すべてのレコードを含む包括的なレポートの作成に便利です。すべてのデータベースがFULL OUTER JOINをネイティブでサポートしているわけではないことに注意してください(例:MySQLではLEFTとRIGHT JOINのUNIONが必要です)。

CROSS JOINとは何ですか?いつ使いますか?

CROSS JOINは2つのテーブルのデカルト積を生成します。Table Aの各行がTable Bの各行とペアになります。Aに4行、Bに4行ある場合、結果は16行になります。組み合わせの生成(例:全サイズ×全カラー)、テストデータの作成、カレンダー/タイムスロットグリッドの構築に便利です。

結果テーブルのNULLは何を意味しますか?

結果テーブルのNULLは、そのレコードに対して他方のテーブルにマッチする行がなかったことを意味します。例えば、LEFT JOINでTable Aの行にTable Bで一致するIDがない場合、Table Bのカラムにはnullが表示されます。これはデータの欠如を表し、空文字列やゼロではありません。

自分のテーブルデータを使用できますか?

はい。Table AとTable Bの両方は完全に編集可能です。値の変更、新しい行の追加、既存の行の削除ができます。結合はidカラムで実行されるので、マッチさせたいID値がテストデータに含まれていることを確認してください。結果テーブルは変更するとリアルタイムで更新されます。

データは安全ですか?

はい。すべての処理はJavaScriptを使用してブラウザ内で完全に実行されます。データがサーバーに送信されることはなく、ネットワークリクエストも行われず、何も記録されません。ツール使用中にブラウザの開発者ツールのネットワークタブで確認できます。

等価以外のJOIN条件に対応していますか?

視覚的なデモンストレーションでは、実際のJOIN使用の大部分をカバーする等価条件(a.id = b.id)を使用しています。実際のSQLでは、ON句で不等式、BETWEEN、LIKE、複合条件など任意の条件を使用できます。ベン図の概念は依然として適用されます。重要な違いは、2つの行が「マッチ」するかどうかを何が決定するかです。

関連ツール