Mysql SQL-基于同一表中的另一个值排除行

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

所讨论的应用程序是一个机密站点。我使用一个查询来检索名为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} 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
    " ) );