簡體   English   中英

SQL 查詢 - 獲取具有或不具有特定值的結果

[英]SQL Query - Get result with and without specific value

您好 :) 我對 SQL 查詢主題還很陌生。 我創建此查詢是為了獲取類型為“課程”及其“課程類別”的帖子。 它正在工作,但我還需要沒有課程類別的帖子。 我想我需要所有帶有tt.taxonomy ='course-category'帖子和沒有這個特定分類的所有帖子。 或者換句話說,所有不存在具有“課程類別”值的分類法的帖子。 怎樣才能做到這一點? 一旦我添加了標記的部分,我就沒有得到任何結果......

SELECT
p.post_title,
t.name,
tt.taxonomy
FROM wNfVMposts p
LEFT JOIN wNfVMterm_relationships tr
ON p.ID=tr.object_id
LEFT JOIN wNfVMterm_taxonomy tt
ON tr.term_taxonomy_id=tt.term_taxonomy_id
LEFT JOIN wNfVMterms t
ON tt.term_id=t.term_id
WHERE p.post_status = 'publish'
AND p.post_type= 'course'
AND tt.taxonomy ='course-category'
**AND tt.taxonomy IN ('course-category') IS NULL**
GROUP BY p.ID

我猜根據你的表的語義名稱選擇,你需要一個 INNER JOIN 到 wNfVMterm_taxonomy 而不是 LEFT JOIN(這樣你就可以保留 NULL 上某些行的 tt.taxonomy 值:請檢查你得到的不同結果集,一種或另一種方式,出於指導原因)。 然后,您應該對 WHERE 子句進行稍微不同的過濾,以選擇您想要的行,其中 tt.taxonomy 等於“課程類別”或 NULL。最后但並非最不重要的一點是,如果您不使用聚合,則根本不需要 GROUP BY 子句職能。

SELECT
    p.post_title
    ,t.name
    ,tt.taxonomy
FROM 
    wNfVMposts p
    LEFT JOIN wNfVMterm_relationships tr ON p.ID=tr.object_id
    LEFT JOIN wNfVMterm_taxonomy tt ON tr.term_taxonomy_id=tt.term_taxonomy_id
    LEFT JOIN wNfVMterms t ON tt.term_id=t.term_id
WHERE p.post_status = 'publish'
    AND p.post_type= 'course'
    AND tt.taxonomy IN ('course-category', NULL);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM