2017-12-18 10 views
1

数万の製品があるWebサイトでどのサプライヤが不足しているのかを調べるために問題が発生しました。WooCommerceで特定のタクソノミーを持たない製品のリストを取得する

phpMyAdminを使用して、どのサプライヤがタクソノミの「サプライヤ」を欠いているかを判断するにはMySQLクエリが必要です。

は、これまでのところ私は、様々な答えから、一緒にこれをつなぎました:

SELECT * 
FROM wp_posts wp 
INNER JOIN wp_postmeta wm ON (wm.`post_id` = wp.`ID`) 
INNER JOIN wp_term_relationships wtr ON (wp.`ID` = wtr.`object_id`) 
INNER JOIN wp_term_taxonomy wtt ON (wtr.`term_taxonomy_id` = wtt.`term_taxonomy_id`) 
INNER JOIN wp_terms wt ON (wt.`term_id` = wtt.`term_id`) 
AND wtt.`taxonomy` = 'suppliers' 
WHERE post_type = 'product' 
GROUP BY wp.ID 

私は、多くの事を試してみたし、それを動作させることはできません。

答えて

1

問題は、あなたがNOT EXISTNOT INを使用することができますので、その製品は、いくつかの他の属性を持っていることsuppliersを持っている製品を除くされていないということです、私はNOT EXISTを使用してクエリを書かれているあなたのクエリです。

SELECT * 
FROM wp_posts wp 
INNER JOIN wp_postmeta wm ON wm.`post_id` = wp.`ID` 
INNER JOIN wp_term_relationships wtr ON (wp.`ID` = wtr.`object_id`) 
INNER JOIN wp_term_taxonomy wtt ON wtr.`term_taxonomy_id` = wtt.`term_taxonomy_id` 
INNER JOIN wp_terms wt ON wt.`term_id` = wtt.`term_id` 
WHERE post_type = 'product' 
    AND NOT EXISTS 
    (SELECT `object_id` 
    FROM `wp_term_relationships` AS wtr_inner 
    WHERE `term_taxonomy_id` IN 
     (SELECT term_taxonomy_id 
      FROM `wp_term_taxonomy` 
      WHERE `taxonomy` = 'suppliers') 
     AND wtr.object_id = wtr_inner.object_id) 
GROUP BY wp.ID 

あなたはすべてのsuppliersterm_taxonomy_idを知っているのであれば、あなたが

SELECT * 
FROM wp_posts wp 
INNER JOIN wp_postmeta wm ON wm.`post_id` = wp.`ID` 
INNER JOIN wp_term_relationships wtr ON (wp.`ID` = wtr.`object_id`) 
INNER JOIN wp_term_taxonomy wtt ON wtr.`term_taxonomy_id` = wtt.`term_taxonomy_id` 
INNER JOIN wp_terms wt ON wt.`term_id` = wtt.`term_id` 
WHERE post_type = 'product' 
    AND NOT EXISTS 
    (SELECT `object_id` 
    FROM `wp_term_relationships` AS wtr_inner 
    WHERE `term_taxonomy_id` IN (27,28,29) -- replace it will all suppliers term_taxonomy_id 
     AND wtr.object_id = wtr_inner.object_id) 
GROUP BY wp.ID 

・ホープ、このことができますとして上記のクエリを変更することができます少し速くなります別のバージョン!

関連する問題