当前位置: 首页 > 知识库问答 >
问题:

从元键列中获取2个元值

东郭子默
2023-03-14

我需要使用一些库导出产品名称,SKU和价格到一个CSV文件。此库使用PDO连接,需要SQL查询。

我想选择名称,SKU和价格从2个WordPress表,即wp_posts和wp_postmeta。

我不知道如何从“meta_-value”列中两次获取“meta_-key”=“u-price”和“meta_-key”=“u-sku”的数据,例如。

我目前的查询:

"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'"

共有1个答案

夹谷烨赫
2023-03-14

听起来你可以使用连接,因此你将元信息关联到正确的帖子。

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
...

这假设wp_posts中的id列是post_id

需要注意的是,根据是否有\u sku\u 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    | sku    | price
--------------|--------|------
Cheddar       | CHE001 | 2.45
Red Leicester | CHE002 |
...

我希望这有帮助。

 类似资料:
  • 当已知Python列表总是包含单个项时,除了: 你可能会问,'你为什么要这么做?‘。仅仅是好奇心。在Python中似乎有一种替代的方法来完成所有的事情。

  • 本文向大家介绍Elm从列表中获取第n个元素,包括了Elm从列表中获取第n个元素的使用技巧和注意事项,需要的朋友参考一下 示例 List不支持“随机访问”,这意味着要从列表中获取第五个元素要比第一个元素花费更多的工作,因此没有任何List.get nth list功能。必须从头开始(1 -> 2 -> 3 -> 4 -> 5)。 如果您需要随机访问,则使用随机访问数据结构(例如)可能会获得更好的结果

  • 问题内容: 您如何从内获得一个? 问题答案: var iframe = document.getElementById(‘iframeId’); var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document; 您可以更简单地写: 并将返回第一个有效的内部文档。 一旦获

  • 问题内容: 我有一个像下面这样的列表,其中第一个元素是id,另一个是字符串: 我只想从此元组列表创建ID列表,如下所示: 我将使用此列表,因此它必须是整数值的列表。 问题答案:

  • 问题内容: 我想知道是否有替代 使用 流 ? 问题答案: 定制收集器可以这样写: 并像这样使用它:

  • 我想得到每个链接,是在所以我想有: