mysql - 查询从元数据表中提取用户数据

标签 mysql sql

我无法弄清楚此查询出了什么问题。我有一个 WordPress 网站,我试图从 wp_users 和 wp_usermeta 中提取用户数据。这是我目前的疑问。它只能吸引一定数量的用户,而不是全部。

SELECT wp_users.id AS ID
    ,metafn.meta_value AS "First Name"
    ,metaln.meta_value AS "Last Name"
    ,wp_users.user_email AS "Email"
    ,metap.meta_value AS "Phone"
    ,metaad.meta_value AS "Address"
    ,metac.meta_value AS "City"
    ,metas.meta_value AS "State"
    ,metapc.meta_value AS "Zip"
    ,metad.meta_value AS "Money Donated"
FROM wp_users
INNER JOIN wp_usermeta metafn ON (
        wp_users.ID = metafn.user_id
        AND metafn.meta_key = 'first_name'
        )
INNER JOIN wp_usermeta metaln ON (
        wp_users.ID = metaln.user_id
        AND metaln.meta_key = 'last_name'
        )
INNER JOIN wp_usermeta metap ON (
        wp_users.ID = metap.user_id
        AND metap.meta_key = 'billing_phone'
        )
INNER JOIN wp_usermeta metaad ON (
        wp_users.ID = metaad.user_id
        AND metaad.meta_key = 'billing_address_1'
        )
INNER JOIN wp_usermeta metac ON (
        wp_users.ID = metac.user_id
        AND metac.meta_key = 'billing_city'
        )
INNER JOIN wp_usermeta metas ON (
        wp_users.ID = metas.user_id
        AND metas.meta_key = 'billing_state'
        )
INNER JOIN wp_usermeta metapc ON (
        wp_users.ID = metapc.user_id
        AND metapc.meta_key = 'billing_postcode'
        )
INNER JOIN wp_usermeta metad ON (
        wp_users.ID = metad.user_id
        AND metad.meta_key = '_money_spent'
        )
WHERE NOT EXISTS (
        SELECT *
        FROM donors
        WHERE donors.user_id = wp_users.id
        )

抱歉,格式错误。任何帮助都会很棒,谢谢!

最佳答案

我发现我需要将连接语句更改为 LEFT JOIN 而不是 INNER。我没有意识到我的数据中存在一些空值,这些值在使用 INNER JOIN 时没有显示出来。谢谢!

关于mysql - 查询从元数据表中提取用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38443979/

相关文章:

mysql - 查询包含两个表的数据库

mysql - 如何计算 MySQL 上两个不同表的平均值?

php - 来自 MySQL DB 的 AngularJS 值

java - 为什么 Hibernate 不将我的类映射为一对多关系?

sql - 似乎无法摆脱讨厌的语法错误

php - 与php一起使用时如何在mysql中使用LIKE子句

mysql - 在 MySQL 中将两个查询连接在一起

sql - 仅选择一个不同的列

php - 使用带有对象的 php session 还是访问数据库更好?

mysql - SQL:从连接表中查找总计