안녕하세요. 쿼리 작성에 문제가 있습니다. 나는 약간 통보를받는 것이 아주 기쁠 것이다!SQL 쿼리의 WHERE 절에 많은 조건이 있습니다.
내 테이블을 TagObjects라고합니다. 5 개의 열을 가지고 있지만 문제의 중요한 3 가지는 tob_tag, tob_object 및 tob_objectType입니다.
쿼리로 달성해야하는 것은 다음과 같습니다. 쌍 (tob_object, tob_objectType)이 알려지지 않은 경우 모든 쌍이 공통으로 가지고있는 모든 tob_tag를 알아야합니다. 나는이 쿼리를 시도
는 (숫자는 예를 들어 있습니다) : 나는 동적으로 쿼리를 짓고 있어요 때문에
SELECT "TagsObjects"."tob_tag"
FROM "TagsObjects"
WHERE TRUE
AND ("TagsObjects"."tob_object" = 8 AND "TagsObjects"."tob_objecttype" = 1)
AND ("TagsObjects"."tob_object" = 9 AND "TagsObjects"."tob_objecttype" = 1)
GROUP BY "TagsObjects"."tob_tag";
를 Where TRUE 것이있다. 이 쿼리는 한 쌍 (WHERE 절에서 AND)으로 작동합니다. 두 쌍 (예를 들어 위의 예제와 같이)으로 시도했을 때 행이 반환되지 않으며 데이터가 있습니다.
누군가 내가 뭘 잘못하고 있는지 또는이 방법을 알고 있다면 큰 도움이 될 것입니다!
PostgreSQL 9.0.1 사용.
TRUE를 삭제하십시오. AND 대신 OR로 대안을 참여 시키십시오. 그리고 행의 시작 부분에 FROM, WHERE 및 GROUP BY와 같은 SQL 키워드를 넣으십시오. –
@Jonathan, 형편없는 형식으로 나를 비난 할 수 있습니다. 나는 줄 바꿈을 추가했다. (SQL 조각은 처음에는 한 줄이었다.) 그러나 가장 좋은 장소에 추가하지 않았다. 나는 그것을 바로 잡을 것이다. –
당신은 쿼리의 일부분에서 AND가 아닌 OR을 사용할 필요가 있습니다 ... 참과 ((..) OR (..) OR) .. – MatBailie