// 下階層用テンプレート #topicpath ---- //ここにコンテンツを記述します。 SQLはあんま詳しくないので、基礎的なことですが、外部結合についてかいときます。 ***サンプルのテーブルと、元データ [#hb9ad6f0] 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) #ref(rel.png) このテーブルに対して検索を実行します。 -通常の検索 mysql> select ITEM.ITEM_ID ,NAME,INITIAL_PRICE,BID_ID,AMOUNT from ITEM ,BID where ITEM.ITEM_ID=BID.ITEM_ID; +---------+--------+---------------+--------+--------+ | ITEM_ID | NAME | INITIAL_PRICE | BID_ID | AMOUNT | +---------+--------+---------------+--------+--------+ | 2 | 商品2 | 1600.5 | 1 | 1700.5 | | 2 | 商品2 | 1600.5 | 2 | 1700.5 | | 3 | 商品3 | 1700.1 | 3 | 1800.1 | +---------+--------+---------------+--------+--------+ 3 rows in set (0.00 sec) -外部結合 mysql> select ITEM.ITEM_ID ,NAME,INITIAL_PRICE,BID_ID,AMOUNT from ITEM left join BID on ITEM.ITEM_ID=BID.ITEM_ID; +---------+--------+---------------+--------+--------+ | ITEM_ID | NAME | INITIAL_PRICE | BID_ID | AMOUNT | +---------+--------+---------------+--------+--------+ | 1 | 商品1 | 100.45 | NULL | NULL |BIDにはITEM_ID=1 | 2 | 商品2 | 1600.5 | 1 | 1700.5 |はないけど検索される | 2 | 商品2 | 1600.5 | 2 | 1700.5 | | 3 | 商品3 | 1700.1 | 3 | 1800.1 | +---------+--------+---------------+--------+--------+ 4 rows in set (0.00 sec) mysql> 左側(ITEM left join BID)のITEMを基準にしてBIDをくっつけていくのが、左外部結合ですね。BIDになくとも、そのITEMは表示されると。 で、右外部結合ってのもあるけど、ITEMとBIDを入れ替えれば((ITEM left join BID と BID rifht join ITEMは同じ?))意味は同じかな?? ---- この記事は #vote(おもしろかった,そうでもない) #comment #topicpath SIZE(10){現在のアクセス:&counter;}