Top / MySQL / 外部結合を考える

SQLはあんま詳しくないので、基礎的なことですが外部結合についてメモっときます。

サンプルのテーブルと、元データ

mysql> select ITEM_ID,NAME,INITIAL_PRICE from ITEM;
+---------+--------+---------------+
| ITEM_ID | NAME   | INITIAL_PRICE |
+---------+--------+---------------+
|       1 | 商品1 |        100.45 |
|       2 | 商品2 |        1600.5 |
|       3 | 商品3 |        1700.1 |
+---------+--------+---------------+
3 rows in set (0.00 sec)

mysql> select BID_ID,ITEM_ID,AMOUNT from BID;
+--------+---------+--------+
| BID_ID | ITEM_ID | AMOUNT |
+--------+---------+--------+
|      1 |       2 | 1700.5 |
|      2 |       2 | 1700.5 |
|      3 |       3 | 1800.1 |
+--------+---------+--------+
3 rows in set (0.00 sec)
rel.png

このテーブルに対して検索を実行します。

左側(ITEM left join BID)のITEMを基準にしてBIDをくっつけていくのが、左外部結合ですね。ITEMを指しているBIDがなくても、そのITEMは表示されると。でそのITEMのBIDのデータはNULLになるんですね。

で、右外部結合ってのもあるけど、ITEMとBIDを入れ替えれば*1意味は同じかな??


この記事は

選択肢 投票
おもしろかった 30  
そうでもない 11  

Top / MySQL / 外部結合を考える

現在のアクセス:19783


*1 ITEM left join BID と BID rifht join ITEMは同じ?

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS