내 CMS에 2 개의 테이블이 있습니다. 하나는 다음과 같은 템플릿 변수를 포함합니다.
table: template_variables
||id||contentid||value||
||1 ||3 ||"Some template variable"||
||1 ||4 ||"Another template variable"||
||2 ||5 ||"Some other template variable"||
다른 테이블에는 내용이 포함되어 있으며 중요한 것은 해당 내용이 게시되었는지 여부에 대한 열이 있습니다. 예 :
table: content
||id||published||value||
||3 ||0 ||"I am not published"||
||4 ||1 ||"I am published"||
||5 ||1 ||"I am published too"||
template_variables
관련 콘텐츠가 게시되었는지 여부 에 따라 의 값을 반환하는 쿼리를 만들고 싶습니다 . 와 예를 들어 내가 값을 반환하고 싶은 위 Another template variable
및 Some other template variable
에 발표 된 관련 내용 (4, 5)로 표시됩니다 content
테이블.
사용하는 다양한 쿼리를 시도했지만 INNER JOIN
성공하지 못했습니다. 예 :
SELECT `value`, `contentid` FROM `template_variables` INNER JOIN content WHERE template_variables.contentid=content.id
그러나이 작업을 수행 할 수 없었습니다-구문이 잘못되었거나 결과가 잘못되었습니다.
누구든지 이것에 대해 올바른 방향으로 나를 가리킬 수 있습니까?
게시 된 열을 참조하기 위해 콘텐츠 테이블을 사용하기를 원하므로 조인이 필요하지 않습니다.
SELECT * from template_variables
Where contentid in
(select id from content where
published =1)
또는 더 나은 성능을 사용하기 Exists(..)
로
SELECT * from template_variables t
Where Exists(select 1 from content c
Where c.published=1 and
t.contentid=c.id)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다