Пользовательский выбор запроса двух таблиц с помощью мета-ключа

Я использую плагин событий, который создает таблицу wp_ftcalendar_events в базе данных с столбцом wp_ftcalendar_events . Вот изображение всей таблицы:

введите описание изображения здесь

Я хочу запросить мои сообщения с помощью start_datetime . Я знаю, что я не могу сделать это с регулярным запросом. Я также знаю, что для этого запроса требуются некоторые условия и т. Д., Но для начала я хотел сделать простой рабочий запрос и добавить условия позже. В кодексе я нашел этот пример, объединяющий 2 таблицы:

 <?php global $wpdb; $querystr = " SELECT * FROM $wpdb->posts, $wpdb->postmeta WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id AND $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ORDER BY $wpdb->posts.post_date DESC "; $pageposts = $wpdb->get_results($querystr, OBJECT_K); ?> <?php if ($pageposts): ?> <?php global $post; ?> <?php foreach ($pageposts as $post): ?> <?php setup_postdata($post); ?> <?php the_title(); ?><br> <?php endforeach; ?> <?php endif; ?> 

Я удалил некоторые мета-ключевые условия, чтобы сделать его более простым, но он все еще работает. Затем я изменил таблицу ftcalendar_events таблицу ftcalendar_events . Я также изменил инструкцию WHERE, потому что я считаю, что в этих двух таблицах post_parent столбец post_parent . Я все еще не могу заставить его работать – он ничего не показывает. Вот полный код:

 <?php global $wpdb; $querystr = " SELECT * FROM $wpdb->posts, $wpdb->ftcalendar_events WHERE $wpdb->posts.post_parent = $wpdb->ftcalendar_events.post_parent AND $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ORDER BY $wpdb->posts.post_date DESC "; $pageposts = $wpdb->get_results($querystr, OBJECT_K); ?> <?php if ($pageposts): ?> <?php global $post; ?> <?php foreach ($pageposts as $post): ?> <?php setup_postdata($post); ?> <?php the_title(); ?><br> <?php endforeach; ?> <?php endif; ?> 

Я не программист, и я не думаю, что смогу продвинуть его дальше.

Снимок экрана запроса phpmyadmin

введите описание изображения здесь

Рабочий код выглядит следующим образом:

 <?php global $wpdb; $querystr = " SELECT * FROM wp_posts JOIN wp_ftcalendar_events ON wp_posts.ID = wp_ftcalendar_events.post_parent WHERE wp_posts.post_status = 'publish' AND wp_posts.post_type = 'post' ORDER BY wp_posts.post_date DESC "; $pageposts = $wpdb->get_results($querystr, OBJECT_K); ?> <?php if ($pageposts): ?> <?php global $post; ?> <?php foreach ($pageposts as $post): ?> <?php setup_postdata($post); ?> <?php the_title(); ?><br> <?php endforeach; ?> <?php endif; ?> 

Некоторые результаты были дублированы, поэтому я изменил с OBJECT на OBJECT_K. Теперь я буду работать на условиях.

Прежде всего, вы пытаетесь объединить обе таблицы по post_parent.

 $wpdb->posts.post_parent = $wpdb->ftcalendar_events.post_parent 

Я думаю, данные в ftcalendar_events имеют дочерние таблицы posts, попробуйте

 $wpdb->posts.ID = $wpdb->ftcalendar_events.post_parent 

Также вы можете попробовать соединить таблицы:

 SELECT * FROM $wpdb->posts JOIN $wpdb->ftcalendar_events ON $wpdb->posts.ID = $wpdb->ftcalendar_events.post_parent WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ORDER BY $wpdb->posts.post_date DESC