複数のテーブルからデータを取得する次の MySQL があります。
SELECT * FROM $wpdb->posts
LEFT JOIN taxi ON ($wpdb->posts.ID = taxi.taxiID)
LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
WHERE $wpdb->posts.post_status = 'publish'
AND $wpdb->posts.post_type = 'post'
AND $wpdb->posts.post_date < NOW()+INTERVAL 1 DAY
AND $wpdb->term_taxonomy.taxonomy = 'category'
AND $wpdb->term_taxonomy.term_id IN(3)
AND taxi.taxiID IS NULL
AND ($wpdb->postmeta.meta_key = 'EndDate' AND $wpdb->postmeta.meta_value > DATE_ADD(NOW(), INTERVAL 3 HOUR))
昨日の時点で、クエリは結果を返していませんが、キッカーは次のとおりです。以前は、2 週間常に結果が返されていました。
多くの試行錯誤の後、問題を次の 1 行に絞り込みました。
AND taxi.taxiID IS NULL
この行により、タクシー テーブルにレコードがない投稿のみが表示されるように結果がフィルター処理されます。
誰でも問題を解決する方法を理解するのを手伝ってもらえますか?