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'
을 옵션으로 지정해야합니다. 그렇다면 거기에 없으면 다른 비교를 수행하고 필요한 데이터를 얻을 수 있습니다.
(어떻게 든이는 OUTER와 함께 할 것 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
안녕하세요 앤드류,이 훌륭한 반응에 감사드립니다. 나는 지금 당신의 질문을 가지고 놀고 있습니다 ... 제 2의 것은 제 1의 것보다 더 잘 작동하고있는 것 같습니다, 기묘하게. 당신이 거기에가는 영리한 것들! – Eric
하하, 그래, 그 중 하나는 재미있게 쓰는 사람이었다. 아마도 좀 더 효율적 일 수 있습니다. 네가 아직도해야 할 일을 하는게 아니야? –
완벽하게 작동하는 것 같습니다. 정말 도움을 주셔서 감사합니다! 이제 저는이 성명서를 정말로 분해하고 여러분이 여기서 한 모든 것을 정말로 이해할 수 있도록 몇 분간 기다려야합니다.나는 'sum'트릭을 좋아한다. – Eric