1

我需要查询一个表以根据给定条件获取 ID 号,然后我需要使用这些 ID 号来检索另一组值,所有这些值都在同一个表上。这是第一个查询:

SELECT post_id
FROM ih_postmeta
WHERE meta_key = '_edd_discount_uses'
AND meta_value > '0'

这可以很好地检索post_id数字。现在我需要运行这个查询的等价物:

SELECT meta_value
FROM ih_postmeta
WHERE post_id = '1088' 
    AND meta_key = '_edd_discount_code'

这可行,除了我需要能够遍历从第一个查询获得的值并且没有WHERE post_id =硬编码。

以下是有关特定表格的示例post_id

|meta_id|post_id|    meta_key      |meta_value
|1822   |1088   |_edd_discount_uses|8
|1823   |1088   |_edd_discount_code|ls100
4

1 回答 1

3

您可以将 IN 与子查询一起使用来获得所需的内容:

SELECT meta_value
FROM ih_postmeta
WHERE post_id IN (SELECT post_id
                  FROM ih_postmeta
                  WHERE meta_key = '_edd_discount_uses'
                  AND meta_value > '0') 
    AND meta_key = '_edd_discount_code'
于 2013-06-21T01:06:18.900 回答