Mysql 从元键列中获取2个元值
我需要使用一些库将产品名称、SKU和价格导出到一个CSV文件中。此库使用PDO连接,需要SQL查询 我想从两个WordPress表格中选择“名称”、“SKU”和“价格”,即wp_posts和wp_Posteta 我不知道如何从“meta_-value”列中两次获取“meta_-key”=“u-price”和“meta_-key”=“u-sku”的数据,例如 我当前的查询:Mysql 从元键列中获取2个元值,mysql,wordpress,phpmyadmin,Mysql,Wordpress,Phpmyadmin,我需要使用一些库将产品名称、SKU和价格导出到一个CSV文件中。此库使用PDO连接,需要SQL查询 我想从两个WordPress表格中选择“名称”、“SKU”和“价格”,即wp_posts和wp_Posteta 我不知道如何从“meta_-value”列中两次获取“meta_-key”=“u-price”和“meta_-key”=“u-sku”的数据,例如 我当前的查询: "SELECT a.post_title, m1.meta_value, m2.meta_value FROM wp_pos
"SELECT a.post_title, m1.meta_value, m2.meta_value FROM wp_posts a, wp_postmeta m1, wp_postmeta m2
WHERE a.post_type='product' AND m1.post_id = a.ID
AND m1.meta_key='_sku'
AND m2.meta_key='_price'"
听起来你可以使用连接,因此你将元信息关联到正确的帖子
SELECT
post.post_title,
meta.meta_value
FROM wp_posts AS post
LEFT JOIN wp_postmeta AS meta
ON post.post_id = meta.post_id
WHERE post.post_type = 'product'
AND meta.meta_key IN ('_sku', '_price')
示例结果:
post_title | meta_value
--------------|-----------
Cheddar | CHE001
Cheddar | 2.45
Red Leicester | CHE002
...
post_title | sku | price
--------------|--------|------
Cheddar | CHE001 | 2.45
Red Leicester | CHE002 |
...
这假设wp_posts中的id列是post_id
需要注意的是,这将为每个帖子返回最多两行,这取决于它是否有一个_sku和_price的元行。如果您需要将所有数据都放在同一行中进行导出,则可能需要类似以下内容:
SELECT
post.post_title,
metaSku.meta_value AS sku,
metaPrice.meta_value AS price
FROM wp_posts AS post
LEFT JOIN (
SELECT
*
FROM wp_postmeta
WHERE meta_key = '_sku'
) AS metaSku
ON post.post_id = metaSku.post_id
LEFT JOIN (
SELECT
*
FROM wp_postmeta
WHERE meta_key = '_price'
) AS metaPrice
ON post.post_id = metaPrice.post_id
WHERE post.post_type = 'product'
示例结果:
post_title | meta_value
--------------|-----------
Cheddar | CHE001
Cheddar | 2.45
Red Leicester | CHE002
...
post_title | sku | price
--------------|--------|------
Cheddar | CHE001 | 2.45
Red Leicester | CHE002 |
...
我希望这能有所帮助。你好,marcinłyczko。您的错误是什么?非常感谢:-@marcinłyczko如果您对我的答案感到满意,请将其标记为已接受的答案: