1
원본에서 이미지를 생성하여 테이블에 저장하고 있습니다. 나는 간격을 검사 할 쿼리를 원한다.브리지/데이터 교차 테이블에서 "누락 된"레코드 찾기
이미지 크기는 세 번째 테이블에 보관되며 각 원본에는 형식 테이블의 각 레코드에 대해 생성 된 이미지가 1 개 있어야합니다.
는 어디에서 지금까지있어 무엇 : 작동SELECT oi.OriginalImageID, it.ImageTypeID
FROM dbo.OriginalImages AS oi
CROSS JOIN
dbo.ImageType AS it
LEFT OUTER JOIN
(
SELECT oi2.OriginalImageID, it2.ImageTypeID
FROM dbo.OriginalImages AS oi2
INNER JOIN
dbo.GeneratedImages AS gi2 ON gi2.OriginalImageID = oi2.OriginalImageID
INNER JOIN
dbo.ImageType AS it2 ON it2.ImageTypeID = gi2.ImageTypeID
) AS sub ON sub.OriginalImageID = oi.OriginalImageID
AND sub.ImageTypeID = it.ImageTypeID
WHERE (sub.OriginalImageID IS NULL)
, 그러나 그것은 매우 추한 것 같다. 더 우아한 방법이 있는지 궁금하네요.
표는 기본적으로 다음과 같이 :
OriginalImages
OriginalImageID (PK)
Image
GeneratedImages
OriginalImageID (FK)
ImageTypeID (FK)
Image
ImageType
ImageTypeID (PK)
Description
험, 아니요. 나는 원래의 쿼리에서 필요한 레코드를 얻고있다. 그러나 이들 중 하나로부터 아무 결과도 얻지 못합니다. 현재 4 가지 "유형"이 있으므로 dbo.GeneratedImages를 선택하십시오. gi2 WHERE gi2.OriginalImageID = oi.OriginalImageID는 GeneratedImages 테이블에 유형 중 하나라도있는 경우 null을 반환하지 않습니다. –
@ Dan - 죄송 합니다만, 가입의 상당 부분을 놓쳤습니다. 업데이트 된 쿼리를 사용해보십시오. –
뜨거운! 도움을 주셔서 감사합니다, 내가 두 번 upvote 수 있으면 좋겠다! –