質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1469閲覧

【Rails】結合してできた別名テーブルから検索したい

katahik

総合スコア79

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/06/28 10:18

実現したいこと

同じテーブル内の別カラムをそれぞれ結合した際にできたテーブルと、元のテーブルの2テーブルから値を抽出したい。

現在、下記SQLのとおり、2回、同じテーブル同士別カラムで外部結合したためrailsにより、新たなテーブルが作成されました。

この際に、それぞれ、old_factory,new_factoryに紐づく値が欲しく、

match_key = "%#{keyword}%" new = Factory.arel_table[:factory_name].matches(match_key) old = ○○Factory.arel_table[:factory_name].matches(match_key) query = query.where(new.or(old))

とした場合に、NameErrorが出てしまいました。
どうにかして、この2つのテーブルから検索をかけたいです。
業務のコードのため、いろいろ濁しての質問となり大変申し訳ございませんが、何卒よろしくお願いいたします。

SQL

・ ・ ・ SELECT *, FROM vehicles, LEFT OUTER JOIN `factories` ON `factories`.`id` = `vehicles`.`new_factory_id` LEFT OUTER JOIN `factories` `○○vehicles`←「これが新しいテーブル名」 ON `factories`.`id` = `vehicles`.`old_factory_id` ・ ・ ・

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/06/28 11:44

直接SQLを使ってしまう、という選択肢もあるかと思うのですが、そのあたりはどうでしょうか?
katahik

2021/06/28 12:18

コメントありがとうございます。 生のSQLも検討したのですが、SQLインジェクションの危険性があるとのことで、よりよい方法を模索しているところでございます。
guest

回答1

0

自己解決

結局、生SQLをサニタイズして使用することとなりました。

投稿2021/07/11 07:01

katahik

総合スコア79

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問