スタッフブログ
同じテーブルを
2回結合(JOIN)する
都道府県や製造メーカーなどの一覧が保存されているテーブルを2回結合したいという案件がありまして、しかも CodeIgniter で。
CodeIgniter を使うのであれば、クエリビルダを使いたくいろいろと試行錯誤したので備忘録として。
id | address | honseki |
---|---|---|
1 | 2 | 3 |
2 | 1 | 5 |
3 | 4 | 8 |
4 | 6 | 7 |
id | pref |
---|---|
1 | 茨城県 |
2 | 栃木県 |
3 | 群馬県 |
4 | 埼玉県 |
5 | 千葉県 |
6 | 東京都 |
7 | 神奈川県 |
8 | 山梨県 |
table01 に table02 を2回結合して以下のようにしたい!
id | address | honseki | add | hon |
---|---|---|---|---|
1 | 2 | 3 | 栃木県 | 群馬県 |
2 | 1 | 5 | 茨城県 | 千葉県 |
3 | 4 | 8 | 埼玉県 | 山梨県 |
4 | 6 | 7 | 東京都 | 神奈川県 |
上記を実現するためのクエリが以下。
SELECT `table01`.*, `add_tabl`.`pref` AS `add`, `hon_tabl`.`pref` AS `hon` FROM `table01` LEFT JOIN `table02` AS `add_tabl` ON `table01`.`address` = `add_tabl`.`id` LEFT JOIN `table02` AS `hon_tabl` ON `table01`.`honseki` = `hon_tabl`.`id` ORDER BY `id`
JOIN のときに呼び出すテーブル名を AS で変更すればよい。
上のクエリを CodeIgniter のクエリビルダで行うと以下になる。
$this->db->select('table01.*,add_tabl.pref AS add,hon_tabl.pref AS hon') ->join('table02 AS add_tabl','table01.address = add_tabl.id','left') ->join('table02 AS hon_tabl','table01.address = hon_tabl.id','left') ->order_by('id','ASC'); $list = $this->db->get('table01')->result();
最後に
ホームページの新規制作・リニューアルは、神奈川県相模原市にあるオフィス木蓮までお気軽にご相談ください。お見積もりは無料です。セキュリティ対策を最優先とし、基本的ではあるものの高スコアなSEO対策、ユーザーの使い勝手などを考慮したサイトを提案します。他社で制作されたホームページの更新作業やメンテナンスにも対応しますのでお気軽にお問い合わせください。
ホームページ制作を承ります
相模原市にある会社・店舗・事務所様からのご依頼大歓迎!
- 【士業】
- 弁護士(法律事務所),公認会計士,税理士,司法書士,行政書士,社会保険労務士など
- 【住まい】
- 不動産,工務店,建設・建築会社,設計事務所,リフォーム会社,建物管理会社,電気工事,水道工事など
- 【乗り物】
- 中古車ショップ,バイクショップ,自転車ショップ,自動車整備,運転代行など
- 【飲食業】
- レストラン,カフェ,甘味処,洋菓子店,パン屋など
- 【医療・福祉】
- 病院,クリニック,歯科医,整体院,接骨院,介護センターなど
- 【美容・健康】
- トレーニングジム,エステサロン,ネイルサロン,美容院,美容室など
- 【教育・育児】
- 専門学校,学習塾,幼稚園,保育園,認定保育園,カルチャースクール,パソコン教室など
- 【その他】
- イベントサイト,産業廃棄事業,リサイクルショップ,雑貨店,ペットショップ,旅館,楽天市場店舗・Yahoo!ストア・MakeShopなど
- 【外注元】
- デザイン事務所、広告代理店、ホームページ制作会社など
上記以外の業種でもホームページ制作・WEBシステム/アプリケーション開発につきましては、神奈川県相模原市中央区にあるオフィス木蓮までお気軽にご連絡・お問い合わせください。スマートフォン・タブレット対応、WordPress によるホームページ制作もお任せ下さい。他社が制作されたホームページでも対応します。また、ウェブアクセシビリティ(Webアクセシビリティ)対応のご相談も承ります。