Dondariadmin (トーク | 投稿記録) |
Dondariadmin (トーク | 投稿記録) |
||
32行目: | 32行目: | ||
=== NATURAL JOIN === | === NATURAL JOIN === | ||
− | + | [[ファイル:naturaljoin.png]] | |
− | + | ||
− | + | ||
*共通の列で結合され、結果の先頭列に昇格してますね。 | *共通の列で結合され、結果の先頭列に昇格してますね。 | ||
*SHOUHIN_BUNRUI_CODEがひとつにまとまってしまうのは、INNER JOIN ~ USINGと同じです。 | *SHOUHIN_BUNRUI_CODEがひとつにまとまってしまうのは、INNER JOIN ~ USINGと同じです。 | ||
*下記SQLもまったく同じ結果が得られます。 | *下記SQLもまったく同じ結果が得られます。 | ||
SELECT * FROM shouhin INNER JOIN shouhin_bunrui USING (shouhin_bunrui_code); | SELECT * FROM shouhin INNER JOIN shouhin_bunrui USING (shouhin_bunrui_code); | ||
− | |||
=== CROSS JOIN編 === | === CROSS JOIN編 === | ||
− | + | [[ファイル:crossjoin.png]] | |
− | + | ||
*直積(デカルト積)ですから、そのまんまですね。shouhinテーブルの3レコード×shouhin_bunruiテーブルの2レコード=6レコード。 | *直積(デカルト積)ですから、そのまんまですね。shouhinテーブルの3レコード×shouhin_bunruiテーブルの2レコード=6レコード。 | ||
*片方のテーブルがゼロレコードの場合は当然結果もゼロレコードです。 | *片方のテーブルがゼロレコードの場合は当然結果もゼロレコードです。 | ||
51行目: | 47行目: | ||
=== FULL JOIN編 === | === FULL JOIN編 === | ||
− | + | [[ファイル:fulljoin.png]] | |
− | + | ||
*1,2行目はshouhin_bunrui_codeで結合されるので、NATURAL JOINの結果と同じです。 | *1,2行目はshouhin_bunrui_codeで結合されるので、NATURAL JOINの結果と同じです。 | ||
*3行目は左側のテーブルのみ存在している結果です。LEFT JOINの結果の中で、条件不一致だったレコードと同じです。 | *3行目は左側のテーブルのみ存在している結果です。LEFT JOINの結果の中で、条件不一致だったレコードと同じです。 |
CREATE TABLE shouhin ( shouhin_code INT , shouhin_name VARCHAR(100) , shouhin_bunrui_code INT ); CREATE TABLE shouhin_bunrui ( shouhin_bunrui_code INT , shouhin_bunrui_name VARCHAR(100) ); INSERT INTO shouhin VALUES (1,'ボールペン黒',10); INSERT INTO shouhin VALUES (2,'ボールペン赤',10); INSERT INTO shouhin VALUES (3,'ノート無地',20); INSERT INTO shouhin_bunrui VALUES (10,'ペン'); INSERT INTO shouhin_bunrui VALUES (30,'用紙');
SELECT * FROM shouhin INNER JOIN shouhin_bunrui USING (shouhin_bunrui_code);
SELECT * FROM shouhin, shouhin_bunrui;
SELECT * FROM shouhin LEFT JOIN shouhin_bunrui USING (shouhin_bunrui_code) UNION SELECT * FROM shouhin RIGHT JOIN shouhin_bunrui USING (shouhin_bunrui_code)Tweet