Sql 查询某些字段时,只返回每个字段中都有数据的用户
我希望为每个用户显示一个行项目,不管他们是否有wpcf dc许可证编号、wpcf dc许可证到期等值 当前,我的结果仅显示已完成所有字段的用户的用户行项目Sql 查询某些字段时,只返回每个字段中都有数据的用户,sql,wordpress,Sql,Wordpress,我希望为每个用户显示一个行项目,不管他们是否有wpcf dc许可证编号、wpcf dc许可证到期等值 当前,我的结果仅显示已完成所有字段的用户的用户行项目 SELECT lx_usermeta.meta_value AS dc_license_number, lx_usermeta2.meta_value AS dc_license_expiration, lx_usermeta3.meta_value AS md_license_number, lx_usermeta4.meta_value
SELECT lx_usermeta.meta_value AS dc_license_number,
lx_usermeta2.meta_value AS dc_license_expiration,
lx_usermeta3.meta_value AS md_license_number,
lx_usermeta4.meta_value AS md_license_expiration,
lx_usermeta5.meta_value AS va_license_number,
lx_usermeta6.meta_value AS va_license_expiration,
lx_usermeta7.meta_value AS first_name,
lx_usermeta8.meta_value AS last_name,
lx_usermeta9.meta_value AS ltx_company
FROM lx_usermeta
JOIN lx_usermeta lx_usermeta2 ON lx_usermeta.user_id = lx_usermeta2.user_id
JOIN lx_usermeta lx_usermeta3 ON lx_usermeta.user_id = lx_usermeta3.user_id
JOIN lx_usermeta lx_usermeta4 ON lx_usermeta.user_id = lx_usermeta4.user_id
JOIN lx_usermeta lx_usermeta5 ON lx_usermeta.user_id = lx_usermeta5.user_id
JOIN lx_usermeta lx_usermeta6 ON lx_usermeta.user_id = lx_usermeta6.user_id
JOIN lx_usermeta lx_usermeta7 ON lx_usermeta.user_id = lx_usermeta7.user_id
JOIN lx_usermeta lx_usermeta8 ON lx_usermeta.user_id = lx_usermeta8.user_id
JOIN lx_usermeta lx_usermeta9 ON lx_usermeta.user_id = lx_usermeta9.user_id
WHERE lx_usermeta.meta_key = "wpcf-dc-license-number"
AND lx_usermeta2.meta_key = "wpcf-dc-license-expiration"
AND lx_usermeta3.meta_key = "wpcf-maryland-license-number"
AND lx_usermeta4.meta_key = "wpcf-maryland-license-expiration"
AND lx_usermeta5.meta_key = "wpcf-virginia-license-number"
AND lx_usermeta6.meta_key = "wpcf-virginia-license-expiration"
AND lx_usermeta7.meta_key = "first_name"
AND lx_usermeta8.meta_key = "last_name"
AND lx_usermeta9.meta_key = "wpcf-ltx-company"
我已经尝试过将连接更改为左连接、完全连接、完全外部连接,并在连接语句之间放置UNION,但是我没有找到一种方法来连接这些字段,而无需填写所有wpcf字段
谢谢你的帮助
更新:
我已经测试了这段代码:
SELECT lx_usermeta.meta_value AS first_name, lx_usermeta2.meta_value AS last_name
FROM lx_usermeta
JOIN lx_usermeta lx_usermeta2 ON lx_usermeta.user_id = lx_usermeta2.user_id
WHERE lx_usermeta.meta_key = "first_name"
AND lx_usermeta2.meta_key = "last_name"
这将一个接一个地显示所有用户,即使他们只有一个或甚至没有名字或姓氏
什么可能会影响wpcf-*字段(自定义字段),因此当我对它们使用相同的语法时,我只会收到包含所有wpcf字段数据的结果?我尝试了您的建议fubar,以及以下内容:
SELECT
um.meta_value AS dc_license_number,
um2.meta_value AS dc_license_expiration,
um3.meta_value AS md_license_number,
um4.meta_value AS md_license_expiration,
um5.meta_value AS va_license_number,
um6.meta_value AS va_license_expiration,
um7.meta_value AS first_name,
um8.meta_value AS last_name,
um9.meta_value AS ltx_company
FROM
lx_usermeta um
LEFT JOIN lx_usermeta um2 ON um.user_id = um2.user_id AND 'wpcf-dc-license-expiration' = um2.meta_key
LEFT JOIN lx_usermeta um3 ON um.user_id = um3.user_id AND 'wpcf-maryland-license-number' = um3.meta_key
LEFT JOIN lx_usermeta um4 ON um.user_id = um4.user_id AND 'wpcf-maryland-license-expiration' = um4.meta_key
LEFT JOIN lx_usermeta um5 ON um.user_id = um5.user_id AND 'wpcf-virginia-license-number' = um5.meta_key
LEFT JOIN lx_usermeta um6 ON um.user_id = um6.user_id AND 'wpcf-virginia-license-expiration' = um6.meta_key
LEFT JOIN lx_usermeta um7 ON um.user_id = um7.user_id AND 'first_name' = um7.meta_key
LEFT JOIN lx_usermeta um8 ON um.user_id = um8.user_id AND 'last_name' = um8.meta_key
LEFT JOIN lx_usermeta um9 ON um.user_id = um9.user_id AND 'wpcf-ltx-company' = um9.meta_key
WHERE
um.meta_key = 'wpcf-dc-license-number';
我现在得到了一些结果,但只针对我的三个虚拟用户(一个空白的公司名称,两个Northwinds)和Cushman Wakefield用户
这些用户是从不同的公司和不同的表格中导入的,并且数据针对每个公司的每个用户进行了适当的组合/更新。我只是说,库什曼·韦克菲尔德在任何方面都不应该是独一无二的
谢谢你的帮助 使用左联接而不是联接。只需将所有联接替换为左联接,即可得到相同的结果。好啊我试着确保另一个用户填写了我从中提取的所有字段,就像出现的那个用户一样。现在那两个人出现了。所以,我的问题是,我需要让我的脚本不在乎是否列出的每个字段都是为每个用户填写的,并显示它们。我感觉我在寻找完全连接或外部完全外部连接,但我看到了我的完全未着色语法,以及运行它时出现的语法错误。编辑:这对我的问题很有帮助,所以我把它贴在这里。