테이블이 다음과 같이 구성되어 있습니다.
테이블 1 : a1,a3,a4
테이블 2 : b1,b2,a1
여기서 b테이블의 조건으로 a 테이블의 내용을 추출하려고 합니다.
그래서 아래와 같이 작성해보았습니다.
select * from table1
where a4=something
and a1=(select a1 from table2 where b1=something)
물론 위의 문장이 틀리지는 않습니다. 다만 서브쿼리문에대한 결과셋이
하나가 아닐경우 안된다는 조건이 있더군요.
그렇다면 b1 필드가 table1 에도 있어야 한다는 얘기가 되는데
이런식의 설계라면 정규화를 어긋나는 구성이 되지 않습니까?
한개의 쿼리문으로 추출이 불가능한것인지 테이블의 설계를 다시해야 하는것인지 조언들 듣고 싶습니다.
어느것이 더 빠른가는 아직 모르겠구요,
어느것이든 원하는 결과셋을 얻을수 있었습니다.
exists 는 문법이 조금 헷갈리더군요.
고맙습니다.