2012-10-25 6 views
7

मुझे संबंधित वर्डप्रेस डीबी से संबंधित श्रेणियों के साथ सभी पोस्ट निकालने की ज़रूरत है और यह सुनिश्चित नहीं है कि इस क्वेरी को कैसे लिखना है। मैंने पहले से ही बिना किसी खुशी के कुछ स्टैब्स लिया है और मदद की सराहना करेंगे?श्रेणियों के साथ सभी वर्डप्रेस पोस्ट निकालने के लिए एसक्यूएल क्वेरी

संपादित करें: यहाँ क्या मैं पहले से ही की कोशिश की है:

SELECT post_title, wpr.object_id, wp_terms.name 
FROM wp_terms 
INNER JOIN wp_term_taxonomy ON wp_terms.term_id = wp_term_taxonomy.term_id 
INNER JOIN wp_term_relationships wpr ON wpr.term_taxonomy_id = 
wp_term_taxonomy.term_taxonomy_id 
INNER JOIN wp_posts ON ID = wpr.object_id 
WHERE taxonomy = 'category' 
AND post_type = 'post' 
ORDER by post_title 

यह काम करने के लिए लगता है, लेकिन यह 1553 मैं कहाँ जानता हूँ कि मैं सिर्फ अपने DB में 1343 है देता है।

संपादित करें: हम एक और SQL क्वेरी पर एक ही बात थोड़ी देर पहले किया था और पाया कि यह संशोधन और अन्य पोस्ट प्रकार में खींच रहा था लेकिन सोचा post_type का उपयोग कर कि यह हल किया गया था = 'पोस्ट'

संपादित करें: डीबी में श्रेणियों की संख्या को देखने पर, यदि आप 1553 - 1343 = 216 घटाते हैं तो मैं कुल संख्या 216, 6 के साथ आता हूं। इसलिए मुझे लगता है कि यह कुल 1553 आ रहा है wp_terms तालिका से जिसे बाहर रखा जाना चाहिए और केवल जो लोग प्रकाशित पोस्ट के साथ सक्रिय हैं उन्हें दिखाया जाना चाहिए?

संपादित करें: अन्य संभावना प्रत्येक पोस्ट कई श्रेणियों, इसलिए अधिक पदों (1553) होने के लिए कारण हो सकता है है। तो मैं प्रत्येक पोस्ट को कई श्रेणियों में कैसे अलग कर सकता हूं?

बहुत धन्यवाद!

+0

[आपने क्या प्रयास किया है] (http://whathaveyoutried.com) अब तक? क्या आप उन टेबलों की संरचना पोस्ट कर सकते हैं जिन्हें आपको क्वेरी करने की आवश्यकता है? – Aprillion

+0

आपने जो पोस्ट किया है उसके साथ क्या गलत है? क्या इसमें कोई त्रुटि है, या आप जो परिणाम चाहते हैं उसे वापस नहीं करते? –

+0

मैंने अपने निष्कर्षों में मदद के लिए कुछ ईडीआईटी जोड़े हैं यदि कोई इसे फिर से देख सकता है? – SixfootJames

उत्तर

19

यह अंतिम उत्तर है जो मेरे लिए काम करता है।

SELECT DISTINCT 
post_title 
, post_content 
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Asking Price (US\$)' AND wp_postmeta.post_id = wp_posts.ID) AS "Asking Price (US\$)" 
,(SELECT group_concat(wp_terms.name separator ', ') 
    FROM wp_terms 
    INNER JOIN wp_term_taxonomy on wp_terms.term_id = wp_term_taxonomy.term_id 
    INNER JOIN wp_term_relationships wpr on wpr.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id 
    WHERE taxonomy= 'category' and wp_posts.ID = wpr.object_id 
) AS "Categories" 
,(SELECT group_concat(wp_terms.name separator ', ') 
    FROM wp_terms 
    INNER JOIN wp_term_taxonomy on wp_terms.term_id = wp_term_taxonomy.term_id 
    INNER JOIN wp_term_relationships wpr on wpr.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id 
    WHERE taxonomy= 'post_tag' and wp_posts.ID = wpr.object_id 
) AS "Tags" 
FROM wp_posts 
WHERE post_type = 'post' 
ORDER BY 
post_title 
, post_content 
+2

डेटाबेस से टैग और श्रेणियों को पकड़ने के लिए एसक्यूएल साझा करने के लिए धन्यवाद - बहुत मदद मिली :) –

+0

खुशी है कि यह आपके लिए काम करता है। ;) – SixfootJames

+5

'और post_status = 'प्रकाशित करें'' – Xeoncross

संबंधित मुद्दे