首先,我对查询多个表格感到抱歉,所以如果这是一个愚蠢的问题,我们很抱歉,但我们都有开始某处!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