我需要查询一次表以获取基于给定条件的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
答案 0 :(得分: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'