두 테이블 Foo 및 Bar가 있다고 가정합니다. Foos와 Bars 사이의 다 대다 관계에 대한 연관 테이블 Foo_Bar가 있습니다.쿼리에서 SQL 동적
이제 기본적으로 바 제약 조건의 동적 번호와 일치하는 Foos를 선택하는 쿼리가 필요합니다. 적절한 수의 조인을 사용하여 동적으로 쿼리를 생성하면됩니다.
SELECT *
FROM Foo F INNER JOIN
Foo_Bar FB1 ON FB1.FooId = F.Id AND FB1.BarId= Y INNER JOIN
Foo_Bar FB2 ON FB2.FooId = F.Id AND FB2.BarId= Z INNER JOIN
--one inner join for each constraint
더 간단한 방법이 있는지 궁금합니다. 나는 기본적으로이 같은 쿼리 원하는 : 유효한 SQL 아니다 물론
SELECT *
FROM Foo F
WHERE (Y, Z, ...) IN (SELECT BarId FROM Foo_Bar WHERE FooId = F.Id)
을하지만, 동적 쿼리가 원하는 결과를 얻을 수있는 유일한 합리적으로 휴대용 방법 있는지 궁금 하군요.
'FB1.FooId = F.Id ON Foo_Bar FB1 가입 FB1.BarId IN (Y, Z :
여기 당신의 테이블에 번역 "어윈 1" 쿼리입니다 ....)' – Lamak
아닙니다. 아래 Dancrumb에 대한 회신을보십시오. – naasking