Mysql SQL-基于同一表中的另一个值排除行
所讨论的应用程序是一个机密站点。我使用一个查询来检索名为cp_price的字段中的值,以生成系统中所有列表的总值 我的目标是在cp_ad_seld字段中排除所有值为yes的列表 下面是我用来检索值的查询:Mysql SQL-基于同一表中的另一个值排除行,mysql,Mysql,所讨论的应用程序是一个机密站点。我使用一个查询来检索名为cp_price的字段中的值,以生成系统中所有列表的总值 我的目标是在cp_ad_seld字段中排除所有值为yes的列表 下面是我用来检索值的查询: $raw_prices = $wpdb->get_col( $wpdb->prepare( " SELECT pm.meta_value FROM {$wpdb->postmeta} AS pm LEFT JOIN {$wpdb->posts
$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'
" ) );
那么,我猜我需要做一个子选择
我知道我需要的键和相应的值与cp_price字段一起存储在posteta表中。我还知道cp_price和cp_ad_Seld拥有相同的post_id
问题:我如何根据cp_ad_Seld键中的值是排除ad_列表及其各自的cp_价格值
注意:我正在使用WordPress进行此操作,并考虑将问题发布到WordPress Stackexchange上。不过,我认为这是一个非常基于SQL的问题,并且认为这是最合适的地点。您可能还需要在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
" ) );