【发布时间】:2018-03-30 15:09:14
【问题描述】:
我有一个包含类别的表,一个包含产品的表和另一个跟踪用户拥有的产品的表 products_user。
在页面上显示产品时,如果用户拥有该产品,则应将按钮从“购买”更改为“已购买”。
我通过 $categories->products 显示产品。找出用户已经拥有哪些产品的最有效方法是什么?
我不想将用户拥有的产品的整个集合加载到内存中,因为它们可能有数千个。我也不想为每个检查创建一个 Mysql 查询。
where 子句有一个选项。但即便如此,我还是有一种更聪明的方法来创建这个子句,而不需要遍历每个产品来构建一个数组。
有人可以帮我想出一个好的逻辑吗?谢谢
【问题讨论】:
-
一般来说,在SQL方面,您可以将用户的产品左连接到您选择的类别中的产品的查询中。对于用户不拥有的类别中的产品,用户产品列将为空。您不会以这种方式加载整个用户产品集合;只有类别中的那些。