【发布时间】:2017-11-21 09:42:30
【问题描述】:
我有三个表products、product_meta_keys 和product_meta_values。产品表存储产品的一般信息,如name,product_meta_keys 存储产品的动态特性/规格键,如product brand,而product_meta_values 表存储给定产品和给定元键的相应值。以下是示例表结构:
产品表
产品元密钥表
产品元值表
在此表中,product_id 和 meta_key_id 是来自 product 和 product_meta_key 表的外键。
现在,我想要的是,使用条件查询将两列(meta_key_id 和 meta_value)组合为单个条件,查询 product_meta_values 表以查找产品 ID。
这是我尝试过的查询(暂时忽略连接部分):
\DB::table('product_meta_values')
->select('product_id as product')
->where(function($query){
$query->where('meta_key_id', 1)
->where('meta_value', 'MValue 1');
})
->where(function($query){
$query->where('meta_key_id', 2)
->where('meta_value', 'MValue 2');
})
->distinct()
->get();
我期待的是
+----------+ |产品 | +----------+ | 1 | +---------+
但设置为空。有什么想法吗?
提前致谢。
【问题讨论】: