有问题的申请是一个分类网站。我正在使用查询来检索名为“cp_price”的字段中的值,以生成系统中所有列表的总值。
我的目标是排除“cp_ad_sold”字段中值为“是”的所有商家信息。
这是我用来检索值的查询:
$raw_prices = $wpdb->get_col( $wpdb->prepare( "
SELECT pm.meta_value FROM {$wpdb->postmeta} AS pm
LEFT JOIN {$wpdb->posts} AS p ON p.ID = pm.post_id
WHERE p.post_type = 'ad_listing'
AND p.ID = pm.post_id
AND pm.meta_key = 'cp_price'
" ) );
所以,我猜测我需要做一个subselect?
我知道我需要的密钥和相应值存储在postmeta表中,右边是“cp_price”字段。我也知道“cp_price”和“cp_ad_sold”共享相同的“post_id”。
问题:如何根据“cp_ad_sold”键中的“是”值排除ad_listings及其各自的cp_price值?
注意:我正在使用WordPress,并考虑在WordPress Stackexchange上发布问题。我认为这是一个基于SQL的问题,但认为这是最合适的场所。
答案 0 :(得分:0)
您可能还想为WHERE子句添加条件 -
$raw_prices = $wpdb->get_col( $wpdb->prepare( "
SELECT pm.meta_value FROM {$wpdb->postmeta} AS pm
LEFT JOIN {$wpdb->posts} AS p ON p.ID = pm.post_id
WHERE p.post_type = 'ad_listing'
AND p.ID = pm.post_id -- Do you really need it? Check LEFT JOIN ... ON clause
AND pm.meta_key = 'cp_price'
AND cp_ad_sold <> 'yes' -- Something like this
" ) );