LEFT JOIN

1. LEFT JOINを1個(親子)

Ruby on Railsのコード

PlayArticle.left_joins(:play_category)
 .select(:id, :title, 'play_categories.name as category_name') 

生成されるSQL

SELECT `play_articles`.`id`, `play_articles`.`title`, play_categories.name as category_name FROM `play_articles` LEFT OUTER JOIN `play_categories` ON `play_categories`.`id` = `play_articles`.`play_category_id`

記事(id)記事名カテゴリ
1複数のWaveファイルの音声を結合する [WAVE.js]JavaScript
2AudioWorkletの使い方 [Web Audio API]JavaScript
3オシレータ(音の生成)とゲイン(音量) の設定 [Web Audio API]JavaScript
4Rails6プロジェクトの各種初期設定Ruby on Rails
5SSD/メモリ増設によるプチフリ(フリーズ)に対応するWindows

2. LEFT JOINを2個(親子子)

Ruby on Railsのコード

PlayArticle.left_joins(:play_authors, :play_accesses)
  .select(:id, :title, :name, :value)

生成されるSQL

SELECT `play_articles`.`id`, `play_articles`.`title`, `name`, `value` FROM `play_articles` LEFT OUTER JOIN `play_authors` ON `play_authors`.`play_article_id` = `play_articles`.`id` LEFT OUTER JOIN `play_accesses` ON `play_accesses`.`play_article_id` = `play_articles`.`id`

記事(id)記事名著者アクセス数
1複数のWaveファイルの音声を結合する [WAVE.js]岡本武史77
2AudioWorkletの使い方 [Web Audio API]岡本武史54
3オシレータ(音の生成)とゲイン(音量) の設定 [Web Audio API]岡本武史120
4Rails6プロジェクトの各種初期設定FUKIさま88
5SSD/メモリ増設によるプチフリ(フリーズ)に対応するFUKIさま35

3. LEFT JOINを2個(親子孫)

Ruby on Railsのコード

PlayArticle.left_joins(:play_category, :play_accesses)
  .select(:id, :title, :name, :value)

生成されるSQL

SELECT `play_articles`.`id`, `play_articles`.`title`, `name`, `value` FROM `play_articles` LEFT OUTER JOIN `play_categories` ON `play_categories`.`id` = `play_articles`.`play_category_id` LEFT OUTER JOIN `play_accesses` ON `play_accesses`.`play_article_id` = `play_articles`.`id`

記事(id)記事名カテゴリアクセス数
1複数のWaveファイルの音声を結合する [WAVE.js]JavaScript77
2AudioWorkletの使い方 [Web Audio API]JavaScript54
3オシレータ(音の生成)とゲイン(音量) の設定 [Web Audio API]JavaScript120
4Rails6プロジェクトの各種初期設定Ruby on Rails88
5SSD/メモリ増設によるプチフリ(フリーズ)に対応するWindows35