Php 包含3个表的复杂选择

Php 包含3个表的复杂选择,php,sql,filter,e-commerce,product,Php,Sql,Filter,E Commerce,Product,我正在开发电子商务应用程序,我正在努力选择产品属性作为过滤器 共有3个表格: 产品 身份证件 名称 忙碌的 1. 气球XL红色 1. 2. 红气球 1. 3. 气球XL绿色 1. 4. 气球是绿色的 1. 5. 气球XL黑色 1. 您可以利用子查询: 从propertyvalue pv中选择DISTINCT pv.value p.id上的内连接乘积p=pv.product 其中pv.property=2和p.id IN 从产品中选择product.id 内部联接属性值 ON product.id

我正在开发电子商务应用程序,我正在努力选择产品属性作为过滤器

共有3个表格:

产品

身份证件 名称 忙碌的 1. 气球XL红色 1. 2. 红气球 1. 3. 气球XL绿色 1. 4. 气球是绿色的 1. 5. 气球XL黑色 1.
您可以利用子查询:

从propertyvalue pv中选择DISTINCT pv.value p.id上的内连接乘积p=pv.product 其中pv.property=2和p.id IN 从产品中选择product.id 内部联接属性值 ON product.id=propertyvalue.product 哪里 propertyvalue.value='Black'和propertyvalue.property=1 或 propertyvalue.value='Red'和propertyvalue.property=1 和product.active=1
基本上,子查询与产品过滤查询相同,唯一的区别是它只选择产品ID,而不是所有内容。这样,无论查询有多复杂,您在注释中提到了数百个属性,您都可以用这样的语句包装该逻辑,并从特定子集中提取一些唯一的值。

DISTINCT不是一个函数,它是SELECT DISTINCT的一部分。只需从中写入选择不同的值。。。使代码更清晰。您已经有了一个获得不同大小的查询。似乎您只需要扩展它,以使用与筛选查询相同的条件。或者,如果您不想运行另一个查询,您可以在PHP中迭代筛选结果时创建一个大小唯一的数组。@El_Vanja我正在努力掌握该查询应该是什么样子。我不是在迭代所有结果,限制设置为15。您能发布问题查询的实际输出吗?描述语句与数据和查询不匹配。Vanja,非常感谢!我真的很感激你的帮助。我已经在生产代码中实现您的查询了。