前提・実現したいこと
sampleテーブル
ID | kind_id | fruits_id |
---|---|---|
1 | 1 | 1 |
2 | 1 | 2 |
3 | 1 | 3 |
4 | 2 | 1 |
5 | 2 | 2 |
4 | 3 | 1 |
5 | 3 | 2 |
5 | 3 | 3 |
5 | 3 | 4 |
上記のテーブルがあった場合、kindでグループ化しkind_id内のfruits_idが一致するものを取得したい
例)fruits_id = 1,2,3のものを取得したい kind_id 1,3が取得できるようにしたいです。
該当のソースコード
SELECT * FROM sample where fruits_id = 1 or fruits_id = 2 or fruits_id = 3
参考程度のSQLです。
SQL
1SELECT kind_id, COUNT(*) FROM sample WHERE fruits_id IN (1, 2) GROUP BY kind_id HAVING COUNT(*) = 2;
上記も参考にしましたがこれでは動的にならないのでできませんでした。
タイトルにlaravelと書かれていますが該当のソースコードがSQLとなっていますが
クエリの書き方でのご質問でしょうか?
それともlaravel上のクエリビルダを使ったご質問でしょうか?
laravelになります。
該当のソースコードがただのクエリになっておりますので
現在のlaravel側のソースコードを貼り付けた方が良いかと思います。
そもそも想定の結果が出るSQLが組めてなければフレームワークにも反映できないので、むしろLaravelではなくSQLをかためるべきではと。
そうですね。
SQLでも組めていないのでご教授ください。
>例)fruits_id = 1,2,3のものを取得したい
>kind_id 1,3が取得できるようにしたいです。
これはfruits_id[1,2,3]すべてを持つkind_idを取得したいという意図でしょうか?
>SQLでも組めていないのでご教授ください。
要件も具体的にし、タグも精査してください。
あと、テーブル定義のCREATE文とサンプルデータのINSERT文もご提示ください。
でないとこちらの手元で確かめられませんので。
>これはfruits_id[1,2,3]すべてを持つkind_idを取得したいという意図でしょうか?
はい。おっしゃる通りです。
通常のLaravelの使い方をしていないように見受けられますが、一体何を参考にしているのでしょうか?
あなたの回答
tips
プレビュー