Strains 用と StoreStrains 用の 2 つのテーブルがあります。ストアは菌株を販売するため、特定のひずみ_id に対して「StoreStrains」に複数のエントリが存在する可能性があります。
Strain テーブルからすべての Strain を取得するために 1 つの呼び出しを行っています。次に、「1,2,3,4,5」のようにこれらのひずみ ID をマッピングしています。次に、別の SQL 呼び出しを実行して、それらの株がある店舗を見つけます。
SELECT * FROM StoreStrains
WHERE strain_id IN (strain_ids)
LIMIT 5
ご想像のとおり、これにより、strain_id が 1 ~ 5 のすべての StoreStrain が返されます。しかし、それらの店舗のうち 3 つが同じ菌株を扱っている場合、8 つの結果が返されますが、5 つに制限しています。
大規模 (500,000 以上の StoreStrains を含む DB) では、「すべての結果を取得する」ために制限を増やすだけでは、まったく適切なオプションではありません。だから私は道の制限があるのだろうかと思っています
WHERE strain_id IN (strain_ids)
1件につき1件の結果に?
次のような 5 つの個別の SQL 呼び出しを実行できることはわかっています。
SELECT * FROM StoreStrains Where strain_id = ? LIMIT 1
しかし、可能であれば、これがすべて1回のSQL呼び出しで行われることを望んでいます。ありがとうございました。