문제

이것은 WordPress 에 구현 된 MySQL 과 관련된 매우 구체적인 질문입니다.

특정 ' 태그 '가 있고 특정 ' 카테고리 '(둘 다 여러 개)에 속하는 게시물을 표시 (선택)하는 플러그인을 개발하려고합니다.

카테고리와 태그가 저장되는 방식 때문에 불가능하다고 들었습니다.

  1. wp_posts에는 게시물 목록이 포함되며 각 게시물에는 "ID"가 있습니다.
  2. wp_terms에는 용어 목록 (카테고리 및 태그 모두)이 포함됩니다.각 용어에는 TERM_ID가 있습니다.
  3. wp_term_taxonomy에는 TERM_ID가 포함 된 용어 목록이 있으며 각 용어 (카테고리 또는 태그)에 대한 분류 정의가 있습니다.
  4. wp_term_relationships는 용어와 게시물을 연결합니다.

    표를 조인하여 "Nuclear" "Category1"카테고리에도 속하는 "Deals"태그가있는 모든 게시물을 가져 오려면 어떻게해야하나요?

도움이 되었습니까?

해결책

오해했습니다.핵이나 거래를 원한다고 생각했습니다.아래는 원자력과 거래 만 제공합니다. 라코 디스

다른 팁

총체적인 DB 구조입니다.

어쨌든 저는 이와 같은 작업을 수행합니다 (조인보다 EXISTS를 선호하지만 원하는 경우 조인으로 다시 작성할 수 있습니다. 대부분의 쿼리 분석기는 어쨌든 동일한 쿼리 계획으로 축소합니다).작동하게하려면 추가로 저글링을해야 할 수도 있습니다 ... 라코 디스

그래서 WordPress db에서 두 가지 옵션을 모두 시도했습니다."Perl"및 "Programming"태그가있는 게시물에서 "Tech"카테고리를 찾았습니다.

Eric 's 는 초기 select 문에 누락 된 쉼표를 추가 한 후 작동했습니다.3 개의 레코드를 반환했습니다.문제는 "post_tag"를 찾는 섹션이 실제로 OR 옵션으로 작동하고 있다는 것입니다.내 게시물 중 하나에는 둘 다가 아닌 하나의 태그 만 있습니다.또한 SELECT DISTINCT를 만드는 것이 좋습니다.

Matt의 버전을 시도했지만 계속 빈 세트를 반환했습니다.나는 그것으로 "저글링"을 시도 할 수 있습니다.

해보기 : 라코 디스

본질적으로 저는 용어, 용어 _ 분류 및 용어 _ 관계라는 관련 하위 테이블 사본 2 개를 사용합니다.한 사본은 'Category1'제한을 적용하고 다른 하나는 'Nuclear'또는 'Deals'제한을 적용합니다.

BTW, 핵 거래에 관한 모든 게시물이있는 프로젝트는 어떤 것입니까?우리를 정부 명단에 올리려고?;)

@Eric 감사합니다!향후 참조를 위해 몇 가지 코드 수정 :

  • 첫 번째 select 문에서 wp_term_relationship tr2 이후 혼수 상태가 누락 됨
  • 동일한 선택 상태에서 다음을 변경해야합니다. 라코 디스

    해야 라코 디스

정말 좋은 답변 .. 많은 도움이되었습니다 ..

훌륭한 bcoz. 복잡한 쿼리를 작성하기위한 기본적인 접근 방식을 제공했습니다!

나와 같은 준비된 사용자를위한 작은 수정 :)

"wp_term_relationship"은 '존재하지 않음 오류'를 표시합니다. .. 올바른 테이블 이름 인 wp_term_relationships 를 사용하세요.

Eric에게 감사합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top