2017-12-18 3 views
1

수만 개의 제품이있는 웹 사이트에서 공급자가 누락 된 제품을 찾아 내려고했습니다.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 

. 당신은 당신이 제품은 몇 가지 다른 속성을 가지고 suppliers을 가지고 제품을 제외하지 않는 것입니다 쿼리와

답변

1

문제는, 그래서 당신은 NOT EXIST 또는 NOT IN, 나는 NOT EXIST를 사용하여 쿼리를 작성했습니다 사용할 수 있습니다. 당신이 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 

로 위의 쿼리를 수정할 수있는 모든이 도움이 알고있는 경우 빠른 비트 될 것

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 

또 다른 버전!

관련 문제