概述:
我试图将几个表连接在一起,以创建一个根据提取数据的值构建的文本字符串。我已经遇到了需要提取等于meta_value
和meta_key
的{{1}}字段_sku
的问题。但是,我无法弄清楚这是如何完成的。非常感谢任何指导我正确方向的帮助。
具体细节: 我想通过创建一个结构如下的字符串为每个可能的产品和车辆配置返回一行:
我有正确的结果数量,但我无法弄清楚如何从_price
表中获取_price
和_sku
值。
最终输出应如下所示:
wp_postmeta
这是我的 PHP :
2T013-ADU00, 2013, Kia, Optima, Hybrid, All Weather Floor Mats, 65.60
2T013-ADU00, 2013, Kia, Optima, SX, All Weather Floor Mats, 65.60
2T013-ADU00, 2013, Kia, Optima, EX, All Weather Floor Mats, 65.60
2T013-ADU00, 2013, Kia, Optima, LX, All Weather Floor Mats, 65.60
2T013-ADU00, 2012, Kia, Optima, LX, All Weather Floor Mats, 65.60
2T013-ADU00, 2012, Kia, Optima, EX, All Weather Floor Mats, 65.60
2T013-ADU00, 2012, Kia, Optima, SX, All Weather Floor Mats, 65.60
2T013-ADU00, 2012, Kia, Optima, Hybrid, All Weather Floor Mats, 65.60
988503W000, 2011, Kia, Sportage, Base, Wiper Blade, 15.75
988503W000, 2011, Kia, Sportage, EX, Wiper Blade, 15.75
这里是 mysql表格:
wp_posts
ID | post_status | post_type | post_title ---+------------------------------------------------- 9 | published | product | All Weather Floor Mats 11 | published | product | Wiper Blade
wp_sFilter
filterId | productId | makeId | modelId | yearId | engineID ---------+-----------+--------+---------+--------+--------- 8 | 9 | 1 | 1 | 3 | 12 7 | 9 | 1 | 1 | 3 | 17 6 | 9 | 1 | 1 | 3 | 11 5 | 9 | 1 | 1 | 3 | 10 9 | 9 | 1 | 1 | 2 | 5 10 | 9 | 1 | 1 | 2 | 6 11 | 9 | 1 | 1 | 2 | 8 12 | 9 | 1 | 1 | 2 | 9 13 | 11 | 1 | 4 | 5 | 13 14 | 11 | 1 | 4 | 5 | 14
wp_sMake
makeId | MakeName -------+--------- 1 | Kia
wp_sModel
modelId | makeId | ModelName --------+--------+---------- 1 | 1 | Optima 4 | 1 | Sportage
wp_sYear
yearId | makeId | modelId | Year -------+--------+---------+----- 1 | 1 | 1 | 2011 2 | 1 | 1 | 2012 3 | 1 | 1 | 2013 4 | 1 | 1 | 2014 5 | 1 | 4 | 2011 6 | 1 | 4 | 2012 7 | 1 | 4 | 2013
wp_sEngine
engineId | makeId | modelId | yearId | EngineName ---------+--------+---------+--------+----------- 1 | 1 | 1 | 1 | LX 2 | 1 | 1 | 1 | EX 3 | 1 | 1 | 1 | SX 4 | 1 | 1 | 1 | Hybrid 5 | 1 | 1 | 2 | LX 6 | 1 | 1 | 2 | EX 8 | 1 | 1 | 2 | SX 9 | 1 | 1 | 2 | Hybrid 10 | 1 | 1 | 3 | LX 11 | 1 | 1 | 3 | EX 12 | 1 | 1 | 3 | Hybrid 13 | 1 | 4 | 5 | Base 14 | 1 | 4 | 5 | EX 15 | 1 | 1 | 1 | LX 16 | 1 | 4 | 5 | SX 17 | 1 | 1 | 3 | SX
wp_postmeta
meta_id | post_id | meta_key | meta_value --------+---------+----------+------------ 20 | 9 | _sku | 2T013-ADU00 24 | 9 | _price | 65.60 50 | 11 | _sku | 988503W000 24 | 11 | _price | 15.75
答案 0 :(得分:0)
从wp_postmeta
表中获取价格和sku的一种方法是两次加入wp_postmeta
表。
所以你会做类似
的事情...
JOIN wp_postmeta sku ON filter.productId = sku.post_id
JOIN wp_postmeta price ON filter.productId = price.post_id
...
并使用meta.*
SELECT
中的sku.meta_value as sku, price.meta_value as price
相应地调整其他部分或代码/ sql,但希望你明白了。
基本上这个想法是你需要加入桌子作为sku和价格。想象一下,你有一个sku和价格表,你将如何进行连接,就连接而言,它们只是在同一个表中。