mysql选择,如何

标签 mysql wordpress

我需要帮助。 我有 2 个表,名称为 bkeys ( id, bkey, ip, user_id )wp_usermeta (是的,wordpress 表,感兴趣的字段是 user_idmeta_key 和 meta_value)。 我需要的是从 bkeys + meta_value 的值中选择所有行,其中 key 是昵称,因此结果将包含字段 bkey、ip 和 meta_value。 问题是,bkeys 表的 ip 和 user_id 可以为 NULL(意味着键还没有被任何用户获取),因此 user_id 为 NULL 的行不会被这样的查询选择

SELECT bkeys.bkey, bkeys.ip, wp_usermeta.meta_value
FROM bkeys
LEFT JOIN wp_usermeta ON ( bkeys.user_id = wp_usermeta.user_id )
WHERE meta_key='nickname'

我需要的是选择所有行,即使 user_id 为空。是否可以?如果是的话,怎么办?

最佳答案

尝试将 meta_key = 'nickname' 移至 ON 子句:

SELECT bkeys.bkey, bkeys.ip, wp_usermeta.meta_value
FROM bkeys
LEFT JOIN wp_usermeta ON wp_usermeta.user_id = bkeys.user_id
                     AND wp_usermeta.meta_key = 'nickname'

LEFT JOIN视为两阶段过滤:

  • 首先尝试使用 ON 条件连接行,否则连接 NULL 行
  • 您可以在 WHERE 条件下进一步过滤联接或 NULL 行。

关于mysql选择,如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11815334/

相关文章:

wordpress - 某些东西在 Wordpress 网站中创建了奇怪的 URL

mysql - MySQL 每小时平均发帖数?

css - 使用css(导航菜单)在同一行显示多个div

PHP 和 SQL 无法发布

mysql - 通过使两个表中的索引列和值不匹配来从两个现有表创建表

php - 我的 WordPress 网站被黑了,被重定向到一些未知来​​源

php - 仅在登录时的 wordpress PHP 代码

php - WordPress 网站页脚中的链接不可点击

PHP - 试图通过for循环将数据插入数据库但只有一行被填充

php - Codeigniter DB 查询链接先前调用中的错误数据