2017-12-29 28 views
2

WooCommerceで親商品を選択する次のSQLクエリがあります。 「在庫あり」の商品のみを選択したいと考えています。Wooocommerceで "instock"の在庫状況を持つすべての親製品を取得

これは私の実際のSQLクエリです:

$query=$db->query("select * from wp_posts 
    where post_parent='0' and post_type='product' and post_status='publish' 
    group by ID 
    limit 10"); 

は、どのように私は、「イン・ストック」親製品(ただし、それらのすべて)のみを選択することができます

+0

更新あなたの質問は、私はいかなる感知が表示されない適切なデータサンプルと要求 – scaisEdge

+0

@scaisEdgeを追加します。..サンプルデータ.. – kashalo

+0

のように更新期待される結果 – scaisEdge

答えて

1

「INSTOCK」などの在庫状況でのみ、親製品を得るための正しい方法: :

テスト済み
global $wpdb; 

// The SQL query 
$results = $wpdb->get_results(" 
    SELECT p.*, pm.meta_value as stock_status 
    FROM {$wpdb->prefix}posts as p 
    INNER JOIN {$wpdb->prefix}postmeta as pm ON p.ID = pm.post_id 
    WHERE p.post_type LIKE 'product' 
    AND p.post_status LIKE 'publish' 
    AND p.post_parent = '0' 
    AND pm.meta_key LIKE '_stock_status' 
    AND pm.meta_value LIKE 'instock' 
    GROUP BY p.ID 
"); 

// Testing output (objects array) 
echo '<pre>'; print_r($results); echo '</pre>'; 

と作品。


が唯一の製品IDを取得するには、次の

global $wpdb; 

// The SQL query 
$results = $wpdb->get_col(" 
    SELECT p.ID 
    FROM {$wpdb->prefix}posts as p 
    INNER JOIN {$wpdb->prefix}postmeta as pm ON p.ID = pm.post_id 
    WHERE p.post_type LIKE 'product' 
    AND p.post_status LIKE 'publish' 
    AND p.post_parent = '0' 
    AND pm.meta_key LIKE '_stock_status' 
    AND pm.meta_value LIKE 'instock' 
"); 

// Testing output (array of IDs) 
echo '<pre>'; print_r($results); echo '</pre>'; 
+1

ありがとうこの正確に何を探しています:) – kashalo

関連する問題