0
我生產的wordpress的rss飼料,並且要求是應該按促銷日期排序,如果促銷日期設置爲文章,或者使用post_date,否則我會上傳 與以下SQL。SQL左連接不給我空條目
SELECT $wpdb->posts.* from $wpdb->posts
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)
LEFT JOIN $wpdb->terms ON ($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
LEFT JOIN $wpdb->postmeta as m2 on ($wpdb->posts.ID=m2.post_id and m2.meta_key='promotion_date')
where now()>(CASE WHEN m2.meta_value IS NOT NULL
then cast(m2.meta_value as DATETIME)
ELSE $wpdb->posts.post_date END)
and $wpdb->posts.post_status='publish'
and $wpdb->posts.post_type='article'
and $wpdb->terms.slug = $slug
and $wpdb->term_taxonomy.taxonomy = 'article_$taxonomy'
order by CASE WHEN m2.meta_value IS NOT NULL
then cast(m2.meta_value as DATETIME)
ELSE $wpdb->posts.post_date
END DESC limit 100;
麻煩的是左連接似乎沒有返回沒有促銷日期的條目。通常情況下,左連接選擇第一個表中的所有列,當沒有匹配時,第二個表中的條目爲空條目。爲什麼在這種情況下不會發生?