データベースの外部結合について (MySQL) [開発]
外部結合についてついつい忘れてしまいがちなので、備忘録としてまとめます。
動作確認をするデータベースは MySQL です。
左側外部結合
join句より左側にあるテーブル1を表示し、右側にあるテーブル2の情報を結合します
右側外部結合
join句より右側にあるテーブル2を表示し、左側にあるテーブル1の情報を結合します
サンプル
次のような2つのテーブルを用意します。
tbl_hello;
tbl_language;
まずは、左側外部結合を試します
次に、右側外部結合を試します
on句の代わりにusing句というのもあります。
これを使うためには結合条件の列名が同じである必要があります。
私自身あまり使う経験がありませんでした。
動作確認をするデータベースは MySQL です。
左側外部結合
select [テーブル名].列名, ... from テーブル1 left join テーブル2 on 結合条件;
join句より左側にあるテーブル1を表示し、右側にあるテーブル2の情報を結合します
右側外部結合
select [テーブル名].列名, ... from テーブル1 right join テーブル2 on 結合条件;
join句より右側にあるテーブル2を表示し、左側にあるテーブル1の情報を結合します
サンプル
次のような2つのテーブルを用意します。
tbl_hello;
tbl_language;
まずは、左側外部結合を試します
mysql> select tbl_hello.id, message, language from tbl_hello
left join tbl_language on tbl_hello.lang_id = tbl_language.id;
次に、右側外部結合を試します
mysql> select tbl_hello.id, message, language from tbl_hello
right join tbl_language on tbl_hello.lang_id = tbl_language.id;
on句の代わりにusing句というのもあります。
これを使うためには結合条件の列名が同じである必要があります。
私自身あまり使う経験がありませんでした。
MyBatis のサンプルを作ってみる (delete) [開発]
2014/10/13:
修正しました。
delete 文のサンプルを作ります。
MyBatis と Spring Framework の環境構築方法は下記を参照してください。
10/1 ブログ (MyBatis のサンプルを作ってみる)
(1) データベースの準備
MySQLをインストールし、テスト用に以下のようなテーブルを準備しました。
(2) Mapper を作成します。
(3) 動作確認用コードを作成します。
実行すると「retValue:1」と表示されます。
(4) 結果確認
1行目の「おはよう」が削除されました。
修正しました。
delete 文のサンプルを作ります。
MyBatis と Spring Framework の環境構築方法は下記を参照してください。
10/1 ブログ (MyBatis のサンプルを作ってみる)
(1) データベースの準備
MySQLをインストールし、テスト用に以下のようなテーブルを準備しました。
(2) Mapper を作成します。
package sample;
import org.apache.ibatis.annotations.Delete;
@Delete("delete from tbl_hello where id = #{id}")
int delete(@Param("id") int id);
}
(3) 動作確認用コードを作成します。
public class SampleMain {
public static void main(String[] args) {
String resource =
"src/main/webapp/WEB-INF/applicationContext.xml";
ApplicationContext ac =
new FileSystemXmlApplicationContext(resource);
HelloMapper helloMapper = (HelloMapper) ac.getBean("helloMapper");
int retValue = helloMapper.delete(1);
System.out.println("retValue:" + retValue);
}
}
実行すると「retValue:1」と表示されます。
(4) 結果確認
1行目の「おはよう」が削除されました。