كيفية تحديد وظائف محددة فئة/فئات في وورد
سؤال
هذا هو سؤال محدد للغاية فيما يتعلق الخلية كما نفذت في وورد.
أنا أحاول تطوير البرنامج المساعد الذي سوف تظهر (حدد) وظائف محددة 'tags و تنتمي محددة 'فئات'(سواء متعددة)
قيل لي انه من المستحيل لأن الطريقة الفئات والعلامات يتم تخزين:
wp_posts
يحتوي على قائمة من الوظائف ، كل وظيفة لها "ID"wp_terms
يحتوي على قائمة مصطلحات (كل الفئات والعلامات).كل مصطلح له TERM_IDwp_term_taxonomy
لديه قائمة من الشروط مع TERM_IDs و التصنيف تعريف كل واحد من هؤلاء (أي فئة أو علامة)wp_term_relationships
وقد بين الجمعيات من حيث والمشاركات
كيف يمكنني الانضمام إلى الجداول للحصول على كل المشاركات مع فئة "النووي" و "الصفقات" التي تنتمي أيضا إلى فئة "Category1"?
المحلول
لقد أسأت فهمك.ظننت أنك تريد النووية أو الصفقات.أدناه ينبغي أن تعطيك فقط النووي الصفقات.
select p.*
from wp_posts p, wp_terms t, wp_term_taxonomy tt, wp_term_relationship tr,
wp_terms t2, wp_term_taxonomy tt2, wp_term_relationship tr2
wp_terms t2, wp_term_taxonomy tt2, wp_term_relationship tr2
where p.id = tr.object_id and t.term_id = tt.term_id and tr.term_taxonomy_id = tt.term_taxonomy_id
and p.id = tr2.object_id and t2.term_id = tt2.term_id and tr2.term_taxonomy_id = tt2.term_taxonomy_id
and p.id = tr3.object_id and t3.term_id = tt3.term_id and tr3.term_taxonomy_id = tt3.term_taxonomy_id
and (tt.taxonomy = 'category' and tt.term_id = t.term_id and t.name = 'Category1')
and (tt2.taxonomy = 'post_tag' and tt2.term_id = t2.term_id and t2.name = 'Nuclear')
and (tt3.taxonomy = 'post_tag' and tt3.term_id = t3.term_id and t3.name = 'Deals')
نصائح أخرى
ما الإجمالي DB هيكل.
على أي حال, كنت تفعل شيئا من هذا القبيل (ملاحظة أنا أفضل وجود ينضم, ولكن يمكنك إعادة كتابتها كما ينضم إذا كنت مثل ؛ معظم الاستعلام تحليل انهيار لهم نفس خطة الاستعلام على أي حال).قد تضطر إلى القيام ببعض إضافية شعوذة بطريقة أو بأخرى أن تجعل من العمل...
SELECT *
FROM wp_posts p
WHERE EXISTS( SELECT *
FROM wp_term_relationship tr
WHERE tr.object_id = p.id
AND EXISTS( SELECT *
FROM wp_term_taxonomy tt
WHERE tt.term_taxonomy_id = tr.term_taxonomy_id
AND tt.taxonomy = 'category'
AND EXISTS( SELECT *
FROM wp_terms t
WHERE t.term_id = tt.term_id
AND t.name = "Category1"
)
)
AND EXISTS( SELECT *
FROM wp_term_taxonomy tt
WHERE tt.term_taxonomy_id = tr.term_taxonomy_id
AND tt.taxonomy = 'post_tag'
AND EXISTS( SELECT *
FROM wp_terms t
WHERE t.term_id = tt.term_id
AND t.name = "Nuclear"
)
AND EXISTS( SELECT *
FROM wp_terms t
WHERE t.term_id = tt.term_id
AND t.name = "Deals"
)
)
)
لذلك حاولت كل الخيارات على وورد ديسيبل.بحثت عن فئة "التكنولوجيا" في مشاركاتي مع فئة "بيرل" و "البرمجة".
اريك عملت مرة واحدة أضيفت في عداد المفقودين فاصلة في الأولي select.عاد 3 السجلات.المشكلة هي أن المقطع الذي يبحث عن "post_tag" هو في الواقع العمل أو الخيار.واحدة من مشاركاتي واحد فقط الوسم ليس على حد سواء.أيضا سيكون من الجيد أن تجعل حدد متميزة.
حاولت مات الإصدار ، لكنه أبقى العودة مجموعة فارغة.كنت قد تحاول "توفق" مع ذلك.
جرب هذا:
select p.*
from wp_posts p,
wp_terms t, wp_term_taxonomy tt, wp_term_relationship tr
wp_terms t2, wp_term_taxonomy tt2, wp_term_relationship tr2
where p.id = tr.object_id
and t.term_id = tt.term_id
and tr.term_taxonomy_id = tt.term_taxonomy_id
and p.id = tr2.object_id
and t2.term_id = tt2.term_id
and tr2.term_taxonomy_id = tt2.term_taxonomy_id
and (tt.taxonomy = 'category' and tt.term_id = t.term_id and t.name = 'Category1')
and (tt2.taxonomy = 'post_tag' and tt2.term_id = t2.term_id and t2.name in ('Nuclear', 'Deals'))
أساسا أنا توظيف 2 نسخ من صلة الطفل الجداول - حيث term_taxonomy ، term_relationship.نسخة واحدة ينطبق على 'Category1' تقييد الآخر 'النووية' أو 'صفقات' تقييد.
راجع للشغل, ما نوع المشروع هذا مع جميع المشاركات النووي الصفقات ؟ أنت تحاول الولايات المتحدة على بعض الحكومة القائمة ؟ ;)
شكرا @إريك يعمل!فقط عدد قليل من التعليمات البرمجية التصحيحات للرجوع إليها في المستقبل:
- أول من حدد البيانات يفتقد غيبوبة بعد wp_term_relationship tr2
- في نفس حدد statemt التالية يجب أن يكون التغيير:
wp_terms t2, wp_term_taxonomy tt2, wp_term_relationship
tr2
يجب أن يكون
wp_terms t3, wp_term_taxonomy tt3, wp_term_relationship
tr3
حقا كبيرة جدا الإجابة ..ساعدني كثيرا..
كبيرة bcoz., أنه أعطاني النهج الأساسي لبناء مجمع الاستعلام !
تصويب بسيط ، على استعداد المستخدمين مثلي :)
"wp_term_relationship" سيعطي 'لا وجود خطأ' ..استخدام wp_term_relationships كما هو الصحيح اسم الجدول.
شكرا اريك