मैं wp_users और wp_usermeta टेबल दोनों से एक दृश्य बनाना चाहता हूं ताकि मैं बाहरी अनुप्रयोग से दृश्य में पंक्तियों से पूछताछ कर सकूं। मूल लेख विवरण wp_users (जैसे उपयोगकर्ता नाम, पासवर्ड, ईमेल, आईडी) में संग्रहीत हैं और अन्य फ़ील्ड wp_usermeta तालिका में कुंजी/मान जोड़े में संग्रहीत हैं।वर्डप्रेस उपयोगकर्ता और usermeta - एक तालिका में एक पंक्ति में एक पंक्ति में एकाधिक पंक्तियों में एक पंक्ति में
wp_users तालिका इस तरह संरचित है:
id | login | password | email
-----------------------------
1 | bsmith| abc123 | [email protected]
2 | jjones| def456 | [email protected]
wp_usermeta तालिका इस तरह संरचित है:
id | user_id | meta_key | meta_value
------------------------------------
1 | 1 | firstname| bob
2 | 1 | lastname | smith
3 | 1 | country | denmark
4 | 2 | firstname| jan
5 | 2 | lastname | jones
6 | 2 | country | germany
मैं ने MySQL दृश्य के रूप में इस तरह के डेटा के साथ खत्म करना चाहते हैं:
id | login | password | email | firstname | lastname | country
-----------------------------------------------------------------
1 | bsmith| abc123 | [email protected]| bob | smith | denmark
2 | jjones| def456 | [email protected]| jan | jones | germany
मुझे पता है कि मुझे wp_users और wp_usermeta के बीच कम से कम एक आंतरिक भागीदारी करने की आवश्यकता है, हालांकि मैं भी उन पंक्तियों में शामिल होने के लिए wp_usermeta के अंदर एक उप क्वेरी करने की आवश्यकता है।
क्वेरी मैं उपयोगकर्ता पंक्ति प्राप्त करने के लिए है निश्चित रूप से मृत आसान है:
select u1.id, u1.login, u1.password, u1.email from wp_users u1
क्वेरी मैं एक पंक्ति के रूप में मेटा प्राप्त करने के लिए है यह है:
select m1.user_id, m1.meta_value as firstname, m2.meta_value as lastname, m3.meta_value as country
from wp_usermeta m1
join wp_usermeta m2 on (m1.user_id = m2.user_id and m2.meta_key = 'last_name')
join wp_usermeta m3 on (m2.user_id = m3.user_id and m3.meta_key = 'country')
where m1.meta_key = 'first_name'
तो कैसे करना है मैं इन दोनों प्रश्नों को एक साथ जोड़ता हूं - u1 का डेटा और पंक्ति जहां u1.id = m1.userid?
आप उन कुछ meta_value गुणों के आधार पर खोज करने की योजना बना रहे हैं? यदि नहीं, तो आप केवल एक सिंगल सीरियलाइज्ड मेटा_वल्यू फ़ील्ड (जेसन एन्कोडेड, या पीएचपी सीरियलाइज्ड) में गुणों को स्टोर कर सकते हैं – Ben
@ बेन: नहीं, एक बाहरी ऐप इंटरैक्टिव रूप से – frumbert