我試圖讓所有職位wp_postmeta表有(meta_key='propdetails' AND meta_value LIKE '%Vacant Unrented Ready%')
或(meta_key='featured' AND meta_value='on')
。SQL的Wordpress查詢 - 內部與外部聯接
我現有的查詢(下面)正在工作,除了當meta_key的「精選」行是缺少。然後,該帖子不返回。
同樣,對於匹配行,我也需要檢索我想獲得的meta_value
其中meta_key='martygeocoderlatlng'
。但是,如果該meta_key丟失,那麼整個帖子根本不會被返回。
所以我需要把我現有的查詢,使meta_key='featured'
或meta_key='martygeocoderlatlng'
可選,所以如果他們不在那裏,我仍然可以做我的其他比較,並獲得我需要的數據。
(我認爲這將與外部進行JOIN不知怎麼的,但我確實不能理清語法)。
這裏是我現有的查詢,僅返回其中meta_key =「特色」和meta_key行=「martygeocoderlatlng」在wp_postmeta表(和WHERE子句中的其他條件都滿足,當然)存在:
SELECT
p.*,
pm.*,
pm_featured.meta_value AS featured,
pm_latlng.meta_value AS latlng
FROM
wp_posts p
JOIN wp_postmeta pm
ON pm.post_id = p.ID
JOIN wp_postmeta pm_propdetails
ON (pm_propdetails.post_id = p.ID AND pm_propdetails.meta_key = 'propdetails')
JOIN wp_postmeta pm_featured
ON (pm_featured.post_id = p.ID AND pm_featured.meta_key = 'featured-property')
JOIN wp_postmeta pm_latlng
ON (pm_latlng.post_id = p.ID AND pm_latlng.meta_key = 'martygeocoderlatlng')
JOIN wp_term_relationships tr
ON tr.object_id = p.ID
JOIN wp_term_relationships tr_taxrel
ON (tr_taxrel.object_id = p.ID AND tr_taxrel.term_taxonomy_id = 12)
WHERE
(pm_propdetails.meta_value LIKE '%Vacant Unrented Ready%'
OR
pm_featured.meta_value = 'on')
AND p.post_type = 'property'
AND p.post_status = 'publish'
GROUP BY p.ID
ORDER BY p.post_date DESC
嘿安德魯,謝謝你的迴應。我現在在玩你的提問......第二個人似乎比第一個人好,奇怪。一些聰明的東西,你去那裏! – Eric
哈哈,是的,這是一個有趣的寫作。雖然可能會更有效一些。任何它沒有做的事情,你仍然需要它做? –
它似乎是完美的工作。非常感謝您的幫助!現在我只需要擱置幾分鐘來真正分解這個聲明,並真正理解你在這裏所做的一切。我喜歡'總和'技巧。 – Eric