我有两张桌子,一张用于菌株,一张用于 StoreStrains。商店出售菌株,因此对于某个菌株 ID,“StoreStrains”中可以有多个条目。
我正在打一个电话以从应变表中获取所有应变。然后我像“1,2,3,4,5”那样映射那些应变ID。然后我正在做另一个 SQL 调用来查找哪些商店有这些菌株。
SELECT * FROM StoreStrains
WHERE strain_id IN (strain_ids)
LIMIT 5
正如您所料,这将返回所有 StoreStrains,其中的 strain_id 为 1-5。但是,如果其中 3 家商店具有相同的压力,我将返回 8 个结果,但我限制为 5 个。
在更大的范围内(在具有 500,000 多个 StoreStrain 的数据库中),仅仅增加“获取所有结果”的限制根本不是一个好的选择。所以我想知道是否有方式限制
WHERE strain_id IN (strain_ids)
每 1 个结果?
我知道我可以像这样执行 5 个单独的 SQL 调用:
SELECT * FROM StoreStrains Where strain_id = ? LIMIT 1
但如果可能的话,我更希望这一切都发生在一个 sql 调用中。谢谢你。