【发布时间】:2017-06-12 23:29:20
【问题描述】:
在使用下表进行第二次联接时,我需要一些帮助。我之前从这里得到了一些帮助,有人建议我需要添加第二个 JOIN,但是,这是我遇到困难并需要一些帮助的地方。
wp-posts
-----------------
id | Post_Title |
-----------------
01 | Event 1 |
-----------------
02 | Event 2 |
-----------------
wp-postmeta
-------------------------------------------------------
meta_id | post_id | meta_key | meta_value |
-----------------------------------------------------
456 | 01 | _EventStartDate | 01/01/2017 |
-------------------------------------------------- ---
789 | 01 | _EventEndDate | 05/02/2017 |
-----------------------------------------------------
我追求的最终结果是这样的;
标题 - 开始于 <_eventstartdate> 并结束于 <_eventenddate>
我使用以下方法获取数据:
$result = $wpdb->get_results ( "
SELECT $wpdb->posts.ID, $wpdb->posts.post_content, $wpdb->postmeta.meta_id,
$wpdb->postmeta.post_id, $wpdb->postmeta.meta_key, $wpdb->postmeta.meta_value, $wpdb->posts.post_title
FROM $wpdb->posts INNER JOIN $wpdb->postmeta ON $wpdb->posts.ID = $wpdb->postmeta.post_id
WHERE $wpdb->postmeta.meta_key = '_EventStartDate'
ORDER BY $wpdb->postmeta.meta_value " );
现在我被告知 WHERE 只会返回一行,并且我需要使用 $wpdb->postmeta.meta_key = '_EventStartDate' 进行第二次 JOIN,但经过数小时的尝试实现这一点后,我根本无法获取和返回数据.
如果有人可以帮助解决这个问题,那将非常有帮助,因为我还有一些问题想写,而且我猜我也需要对他们使用相同的主体。
感谢阅读!!
【问题讨论】:
标签: php mysql wordpress join inner-join