Custom taxonomy and query multi conditions

Question

I have this query

$query->set( 'tax_query', array(
                    'relation' => 'OR',
                    array(
                        'taxonomy' => 'location',
                         'operator' => 'IN',
                        'field' => 'slug',
                        'terms' => $availableRegions,
                    ),
                    array(
                        'taxonomy' => 'location',
                         'operator' => 'NOT IN',
                        'field' => 'slug',
                        'terms' => $notavailableRegions,
                    )
                ));

and it’s return this sql query

SELECT wp_posts.ID
FROM wp_posts 
INNER JOIN wp_term_relationships
ON (wp_posts.ID = wp_term_relationships.object_id) JOIN wp_icl_translations t
ON wp_posts.ID = t.element_id 
AND t.element_type IN ('bla') JOIN wp_icl_languages l
ON t.language_code=l.code
AND l.active=1
WHERE 1=1  


AND (
wp_term_relationships.term_taxonomy_id IN (200) 

OR wp_posts.ID NOT IN ( 
SELECT object_id 
FROM wp_term_relationships 
WHERE term_taxonomy_id IN (201,203,205,206) )
)

but what i really need is to return this sql

SELECT wp_posts.ID
FROM wp_posts 
INNER JOIN wp_term_relationships
ON (wp_posts.ID = wp_term_relationships.object_id) JOIN wp_icl_translations t
ON wp_posts.ID = t.element_id 
AND t.element_type IN ('bla') JOIN wp_icl_languages l
ON t.language_code=l.code
AND l.active=1
WHERE 1=1  


AND (
wp_term_relationships.term_taxonomy_id IN (200) 
OR wp_term_relationships.term_taxonomy_id NOT IN (201,203,205,206) 

)

any suggestions to save my weekend 😀

0
, , , Bashar Gh 3 years 2020-02-09T08:38:32-05:00 0 Answers 86 views 0

Leave an answer

Browse
Browse