Mybatisで複数テーブルを結合させる方法

Mybatisで複数テーブルを結合させる方法

Mybatisで複数テーブルを結合させる方法の例を示します。

テーブル構造

  • test_user テーブル

- id (ユーザーID)
- name (ユーザー名)

  • test_order テーブル

- order_id (注文ID)
- user_id (ユーザーID)
- product (商品名)

MybatisのSQLマッピング

<select id="getUserOrders" parameterType="int" resultType="map">
  select
    u.id as userId,
    u.name as userName,
    o.order_id as orderId,
    o.product as product
  from
    test_user u
  join
    test_order o
  on
    u.id = o.user_id
  where
    u.id = #{id}
</select>

解説

  • select文で必要なカラムを指定します。
  • joinを使用して、test_user テーブルと test_order テーブルを user_id で結合します。
  • where句で、ユーザーIDを指定して該当するユーザーの注文情報を取得します。