首先,我對查詢多個表格感到抱歉,所以如果這是一個愚蠢的問題,我們很抱歉,但我們都有開始某處!MySQL查詢 - 基於兩個因素加入數據,然後根據數值自定義數據排序方式
我做了一張照片應該使這個更容易理解:
http://www.mediumsliced.co.uk/temp/mysqlhelp.jpg
我的第一臺wp_user有幾個專欄 - 我想從3列這是ID USER_EMAIL和user_nicename值。
我的第二張表wp_usermeta有3列存儲用戶的元數據。這些列是user_id,meta_key和meta_value。此表中的user_id值始終對應於wp_user中的匹配ID值(請參見圖片)。
我想加入meta_key字段中的數據以及它的meta_value。到目前爲止,我有這樣的:
SELECT wp_users.ID, wp_users.user_login, wp_users.user_nicename, wp_users.user_email,
wp_usermeta.user_id, wp_usermeta.meta_key, wp_usermeta.meta_value
FROM wp_users, wp_usermeta
WHERE (wp_users.ID = wp_usermeta.user_id);
這顯示我需要的所有信息,但是我有問題的是,其實我是想顯示來自meta_key作爲單獨的列中的數據和正確的行中的元鍵meta_value爲那個用戶根據他們的ID。我還需要排除任何沒有wp_user_level爲0的用戶。(希望我的照片更清晰)
很明顯,我有很多需要了解的MySql,但如果有人能指導我到最後的結果我會很感激,如果你能解釋這個查詢,以便我可以從中學習,而不是僅僅複製和粘貼它,那更是如此。
非常感謝,如果您需要更多信息或需要我澄清任何問題,隨時提問!
克雷格
EAV表格設計非常差,很難有效地查詢和表現不佳的表演者。建議您完成這項工作來定義您需要的列並將其重新分配到標準化的標籤。 – HLGEM 2010-06-22 14:43:59
@HLGEM,我認爲他必須忍受它 - > http://codex.wordpress.org/Database_Description#Table:_wp_usermeta – Unreason 2010-06-22 14:49:00
@Unreason - 獎金功能:數據庫中似乎沒有任何東西可以防止有兩個meta_key具有相同的meta_key,但具有不同的值。 – Thomas 2010-06-22 14:59:36