JOIN の結合条件の対応表
FROM 句の JOIN を、表と条件の対応表にして読み解く。
SELECT 文を貼り付けると、FROM 句の JOIN を 1 行ずつの表にします。結合の種類・結合先の表と別名・ON / USING / NATURAL の条件を並べ、条件の抜けや書き方の注意を知らせます。入力はブラウザの外へ送信しません。
SELECT 文を貼り付けて JOIN の対応表を作る
入力した内容は送信されません。貼り付けた文字や選んだファイルは、お使いのブラウザの中だけで処理します。本サイトのサーバーや第三者へ送信・保存しません(通信を禁止する設定でページを配信しています)。
結果
エラー 0 件・警告 0 件・情報 0 件
指摘(エラー・警告・情報)
指摘はありません。
| 表の数 | 2 個 |
|---|---|
| 結合の数 | 1 個 |
| 外部結合の数 | 0 個 |
JOIN の対応表
| # | 結合の種類 | 表(別名) | 条件の種類 | 条件 |
|---|---|---|---|---|
| 1 | (最初の表) | orders AS o | - | - |
| 2 | INNER JOIN | users AS u | ON | u.id = o.user_id |
初期表示は入力例「内部結合と ON の条件」の結果です。入力を変えるとその場で処理し直します。判定の根拠は仕様と根拠にまとめています。
ご利用にあたって
- 結果は字句の読み取りにもとづく確認で、実際のデータベースでの解釈を保証するものではありません。
- ドキュメントは PostgreSQL License で公開されています。このサイトはその内容を要約して参照しており、転載はしていません。
使い方
- 調べたい SELECT 文を入力欄に貼り付けます。
- 表の「結合の種類」「表(別名)」「条件」を上から順に読み、意図した表同士が結ばれているかを確かめます。
- 指摘の欄で、条件の抜けや NATURAL・USING の注意を確認して SQL を直します。
入力例と結果
代表的な入力・境界の入力・壊れた入力の例です。例ごとに入力・出力・指摘と、その結果になる理由(検算)を載せています。
| 入力例 | 結果 |
|---|---|
| 内部結合と ON の条件 | エラー 0 件・警告 0 件・情報 0 件 |
| 左外部結合と USING | エラー 0 件・警告 0 件・情報 1 件 |
| NATURAL JOIN とカンマ区切り | エラー 0 件・警告 0 件・情報 2 件 |
| 外部結合と WHERE の同居 | エラー 0 件・警告 0 件・情報 1 件 |
| 条件を書き忘れた JOIN | エラー 1 件・警告 0 件・情報 0 件 |
このツールでできないこと(制約)
- 完全な SQL の構文解析はしません。サブクエリや括弧で囲んだ結合の中身は読まず、「(サブクエリ)」「(括弧つきの結合)」として表に出します。
- ON の条件の正しさ(列が存在するか・型が合うか)は判定しません。条件の文字列をそのまま表示します。
- UPDATE ... FROM や DELETE ... USING の結合は対象外で、SELECT 文だけを読みます。
- WITH 句(共通テーブル式)で始まる問い合わせは判定不能と表示します。
よくある質問
JOIN とだけ書くと何の結合になりますか?
INNER JOIN になります。INNER も OUTER も省略でき、INNER が既定です(7.2.1.1 節)。表では INNER JOIN と表示します。
USING (id) は ON a.id = b.id と同じですか?
結ぶ条件は同じですが、USING では結果に id が 1 列だけ出る点が違います(7.2.1.1 節)。ON では a.id と b.id の 2 列が出ます。
貼り付けた SQL はどこかに送られますか?
送られません。処理はお使いのブラウザの中だけで行い、ページは通信を禁止する設定(CSP の connect-src)で配信しています。