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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

416閲覧

Laravel5で検索結果で得たデータで再検索するクエリ文

yamayamak

総合スコア131

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/06/12 14:13

UserとCarの関係があるテーブルがあります。以下のようなテーブルです。

user_cars_table
Field1:user_id
Field2:car_id

ユーザが複数の車を利用することができます。
その場合にUser1が利用している車を他のUserも利用している可能性があります。
その場合に、関係する全ユーザの情報を取得したい場合に、どのようにSQLで書けば良いでしょうか?

具体的には、User1がCar1,Car2を利用していた場合に、Car1はUser1のみ利用し
Car2にはUser2,3,5が利用できます。
したがって、User1で利用しているCar1,2を取得し、Car1,2を利用する全ユーザを取得したいです。

User1を指定すると以下のようなSQL結果を取得したいと考えています。

user_id - car_id
1 - 1
1 - 2
2 - 2
3 - 2

という内容を取得したいです。
User2、3は他の車を利用しているかもしれませんが、それは取得しません。
User1が利用している車とその車を利用していうUser情報の関係リストを取得したいです。

単純にUser1に関係する内容を取得する場合は以下になると思います。

Laravel

1$user_cars = user_cars_table::select() 2 ->where('f_userid', $user_id)->get();

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

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

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

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

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

guest

回答1

0

自己解決

whereInを使えばできました。

$user_id = $request->user()->id; $user_cars = user_cars_table::select() ->where('f_userid', $user_id)->get(); ->whereIn('car_id', function ($query) use ($user_id) { $query->select('car_id') ->from('user_cars_table') ->where('f_userid', $user_id)->get(); })->get();

投稿2018/06/12 15:20

yamayamak

総合スコア131

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問