2017-04-20 1 views
0

개인이있는 테이블과 앨범 레코드 및 상태가있는 두 번째 테이블이 있습니다.테이블 B에서 모든 상태가 동일한 경우에만 표 A에서 선택하십시오.

해당 앨범 테이블의 두 레코드가 모두 true 인 경우에만 선택하는보기를 작성하는 데 도움이 필요합니다. (indivTable에서 indivTable의 개인 만 선택하십시오. 모든 앨범 상태 = 1)

개인이 두 개의 앨범 (하나는 상태가 참이고 다른 하나는 상태가 거짓 인 앨범)이 있기 때문에 조금 더 필요합니다. 나는 그 개인이 선정되지 못하고 실격을하기를 원합니다.

제공 될 수있는 모든 도움에 감사드립니다.

감사

답변

2
select * from individuals i where (select count(1) from albums a where status != 1 and individualID = i.individualID) = 0 
+0

팁을 아래의 쿼리 : 하나의 존재 여부를 확인하는 경우 (''COUNT') (https : //)를 얻기보다는 ['EXISTS'] (https://msdn.microsoft.com/en-us/library/ms188336.aspx)를 사용하는 것이 더 효율적입니다. msdn.microsoft.com/en-us/library/ms175997.aspx) 값을 0으로 비교하십시오. – HABO

1

개인이 적어도 하나의 앨범이있는 경우 또한 (그들은 하나가 바로 계산에 포함되지 않습니다?) 점검이

SELECT DISTINCT i.* 
FROM Individuals AS i 
INNER JOIN Albums AS a 
    ON i.ArtistID = a.ArtistID 
WHERE NOT EXISTS 
(
    SELECT 1 
    FROM Albums AS a2 
    WHERE a2.ArtistID = i.ArtistID 
    AND a2.Status = 0 
) 
관련 문제