gpt4 book ai didi

php - 高级 WordPress SQL 查询

转载 作者:行者123 更新时间:2023-11-29 06:55:54 25 4
gpt4 key购买 nike

4 小时后,我无法找到解决方案,如何正确编写 SQL 查询以回显两个表中的数据。

我有两个表,我需要“连接”它们的数据。

第一个表是“wp_users”,第二个表是“wp_usermeta”。

从“wp_users”中,我需要的是“user_email”(因此它将是 SELECT user_email FROM wp_users)。

但是我需要加入另一个名为“wp_usermeta”的表,其中我需要很多内容,例如“first_name”、“last_name”、“phone_number”、“schoolid”、“schoolname”等。

问题来了:-)

在wp_usermeta中,我需要从两列读取数据 - “meta_key”和“meta_value”。 “meta_key”列存储变量的名称(例如“schoolid”),“meta_value”列存储 meta_key 的值(例如“XXXXXXXX”)。

我有这个代码:

  <table>
<tr><th>Email Address</th><th>First Name</th></tr>
<?php
$teacher_table = "SELECT wp_users.user_email, wp_usermeta.meta_value
FROM wp_users INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id
WHERE wp_usermeta.meta_key = 'nickname'";


$results_table_main = $wpdb->get_results($teacher_table);

foreach ($results_table_main as $value){
echo '<tr><td>'.$value->user_email .'</td>';
echo '<td>'.$value->meta_value .'</td>';
} ?>
</table>

这可行,但我不知道如何修改它以获得更多元键及其元值。

有什么想法吗?

最佳答案

您想要的事情可以通过一个查询来完成,但它可能会变得困惑。您可能需要考虑进行多个查询。但这是单个查询的样子:

SELECT wp_users.user_email,
usermeta_firstname.meta_value AS first_name,
usermeta_lastname.meta_value AS last_name
FROM wp_users
INNER JOIN wp_usermeta AS usermeta_firstname
ON wp_users.ID = usermeta_firstname.user_id
AND usermeta_firstname.meta_key = 'first_name'
INNER JOIN wp_usermeta AS usermeta_lastname
ON wp_users.ID = usermeta_lastname.user_id
AND usermeta_lastname.meta_key = 'last_name'

然后,只需继续为所需的每个字段重新加入 wp_usermeta 表即可。请注意,如果您要使用INNER JOIN,则所有值都必须存在。如果您想考虑可能缺失的值,请改用LEFT JOIN

关于php - 高级 WordPress SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45655604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com