Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mySQL Wordpress从wp_usermeta.value查询创建表不工作_Mysql_Wordpress - Fatal编程技术网

mySQL Wordpress从wp_usermeta.value查询创建表不工作

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

为工作中的项目开发我的第一个WP插件/学习SQL

我正在使用mySQL 5.5,并计划通过PHP中的$wpdb->query()函数运行以下代码,尽管我现在直接在phpMyAdmin中进行测试

我正在尝试创建一个表,该表结合并简化了来自wp_usermeta表和另一个插件(buddypress)的信息,以创建一个表,然后我可以拉式创建由不同feild(名称、位置、点)组织的用户报告

按照一位同事的建议,我制作了一个新的表来将数据合并到其中

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)