mySQL Wordpress从wp_usermeta.value查询创建表不工作
为工作中的项目开发我的第一个WP插件/学习SQL 我正在使用mySQL 5.5,并计划通过PHP中的$wpdb->query()函数运行以下代码,尽管我现在直接在phpMyAdmin中进行测试 我正在尝试创建一个表,该表结合并简化了来自wp_usermeta表和另一个插件(buddypress)的信息,以创建一个表,然后我可以拉式创建由不同feild(名称、位置、点)组织的用户报告 按照一位同事的建议,我制作了一个新的表来将数据合并到其中mySQL Wordpress从wp_usermeta.value查询创建表不工作,mysql,wordpress,Mysql,Wordpress,为工作中的项目开发我的第一个WP插件/学习SQL 我正在使用mySQL 5.5,并计划通过PHP中的$wpdb->query()函数运行以下代码,尽管我现在直接在phpMyAdmin中进行测试 我正在尝试创建一个表,该表结合并简化了来自wp_usermeta表和另一个插件(buddypress)的信息,以创建一个表,然后我可以拉式创建由不同feild(名称、位置、点)组织的用户报告 按照一位同事的建议,我制作了一个新的表来将数据合并到其中 CREATE TABLE new_table( user
CREATE TABLE new_table(
user_id varchar(255),
first_name varchar(255),
last_name varchar(255),
points varchar(255),
location varchar(255)
然后我将使用wp_usermeta表中的值更新它。如果您不知道用户元表如下所示:
|umeta|U id |用户| id |元|键|元|值|
|1 | 20 |姓| Doe|
|2 | 20 |名字|约翰|
|3 | 20 |分| 500|
|4 | 33 |姓|土|
|5 | 33 |名字|乔|
|3 | 33 |分| 800|
然后是一张结构相似的buddypress表
|id |字段| id |用户| id |值|
|1 | 1 | 20 |纽约|
|2 | 2 | 20 |蓝色|
|3 | 1 | 33 |伦敦|
|4 | 2 | 33 |红色|
user_id字段标识用户,在各个表中都是相同的,但表之间不相互引用
所以我尝试使用这个代码
INSERT INTO new_table( user_id, last_name )
SELECT user_id, meta_value
FROM wp_usermeta
WHERE meta_key = 'last_name';
UPDATE new_table
SET first_name = wp_usermeta.meta_value
WHERE new_table.user_id = wp_usermeta.user_id
AND wp_usermeta.meta_key = 'first_name';
返回“where子句”中的未知列“wp\u usermeta.user\u id”
我发现了一些关于更新的建议,比如在专栏中加引号。像
UPDATE new_table
SET first_name = "wp_usermeta.meta_value"
WHERE new_table.user_id = "wp_usermeta.user_id"
AND "wp_usermeta.meta_key" = 'first_name';
这将无错误地运行,但first_name列仍为空
有什么建议吗?这解决了问题
UPDATE new_table as table
SET first_name = (
SELECT meta_value
FROM wp_usermeta
WHERE table.user_id = wp_usermeta.user_id
AND wp_usermeta.meta_key = 'first_name');
通过在我的UPDATE语句中使用SELECT修复(Set=SELECT)