Get data from 3rd table

时间:2013-11-04 作者:user2908800

我有三张桌子:

当我从wp_posts 我正在使用LEFT JOINwp_metadata, 但是如何从第三个表中获取值users?

示例:

我的WordPress博客上有一篇帖子。在那篇文章中,我有一些元字段,其中一个叫做userid. 我的用户位于WordPress之外的一个表中。如何从表中获取用户的用户名users post元键userid 等于users-表格行ID?

下面是我目前的SQL请求:

$result = query("
SELECT ID, post_title, post_excerpt, post_content, 
       m.meta_value AS placeid, 
       i.meta_value AS photoid, 
       r.meta_value AS rating, 
       u.meta_value AS userid, 
       b.username 
FROM wp_posts p 
       LEFT JOIN wp_postmeta m ON (m.post_id = p.ID) 
       LEFT JOIN wp_postmeta i ON (i.post_id = p.ID) 
       LEFT JOIN wp_postmeta r ON (r.post_id = p.ID) 
       JOIN wp_postmeta u ON (u.post_id = p.ID) 
       LEFT JOIN brugere b ON (b.id = userid) 
WHERE m.meta_key = \'placeid\' 
       AND i.meta_key = \'photoid\' 
       AND r.meta_key = \'rating\' 
       AND u.meta_key = \'userid\' 
       AND post_status = \'publish\' 
ORDER BY ID DESC 
LIMIT 50
");
我想要一个查询,因为我在print json_encode.

1 个回复
SO网友:Joey Yax

我简化了您的查询,但像这样的事情难道不能完成吗?

SELECT *
FROM $wpdb->posts AS p
LEFT JOIN $wpdb->postmeta AS pm
    ON p.ID = pm.post_id
LEFT JOIN users AS u
    ON pm.meta_value = u.user_id
WHERE pm.meta_key = \'user_id\'
    AND post_status = \'publish\'
ORDER BY p.ID DESC
LIMIT 50;

结束

相关推荐

MySQL数据库向WordPress的迁移

我在一个非WordPress数据库中为一个web应用程序建立了一个MySQL数据库。该数据库有许多表,这些表中预先填充了外键行等,这需要很长时间才能输入。我正试图找出如何将这些表完整地放入WordPress数据库。我还想知道,当我这样做的时候,如何给表名一个前缀来表示它们与WordPress核心表是分开的。我还创建了processforms。我使用mysqli prepare和bind param方法阻止SQL注入的php文件,使用$wpdb prepare方法重新编码有什么好处吗?如果您能在这方面提供任