一个数据表查询问题
产品表
产品属性表
前端查询页面图
这时候 突然不知道前端 点击某些筛选之后 sql语句该怎么写了~~ 表结构貌似有点问题?
如上面查询图 现在要查 所有产品 颜色 = 金色 成色 = A+
select * from product_attr where `key` = 'color' and `value` = '金色' // 这样是ok的 那再加上 成色呢?
select * from product_attr where `key` = 'colour' and `value` = 'A+'
怎么把上面那两条sql语句 合起来呢? 查询 成色 = A+ 且 颜色 = 金色的产品 突然脑子有点转不过来了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你的表设计有问题,应该直接把颜色、成色这些作为产品表的字段,属性表直接拿掉不要了。
这种情况下需要用交集,取出两部分重合的数据
这个sql 应该可以满足你的需求,但是在真正的产品中,是不会出现这种的sql的
你这个表设计得有问题,你可以去了解一下商品的sku的设计
最后的解决方案
核心是在 group by porduct_id having count(id) >= 2这里 如果查询条件是3个那么 count(id) >=3 依次类推
暂未发现什么坑 能完成需求