약 5 개의 테이블을 조인하고 모든 결과를 표시하는 쿼리가 있습니다. 레코드는 웹 애플리케이션에 약 70000 개의 항목이 있어야하지만,이 작업을 수행하면 MSSQL 2008에 51000 개의 항목 만 표시됩니다. 조인 기능을 사용하여 모든 70000 항목을 표시 할 수 있는지 궁금합니다. 내부 조인? 나는 join 함수에 대해 너무 많은 경험이 없으며 누군가가이 쿼리를 편집하여 5 개의 테이블에있는 모든 엔트리를 표시하기를 희망했다. 나는 이것이 전문가의 progammer를위한 빠른 수정 인 것을 알고 있으며, 나는 시간과 노력을 미리 감사한다. 건배SQL에서 조인 함수
기존 쿼리 :
select SerialNum as [Serial Number],ts_sitename As Site,(case m.Scratched
when 0 then 'Live'
when 1 then 'Free'
END) as Status, Note as Comment,
SUBSTRING(cast(EffectiveDate as char), 1, 8) AS [Effective Date Added],
SUBSTRING(cast(EffectiveDate as char), 10, 6) AS [Effective Time Added],
SUBSTRING(cast(ScratchedDate as char), 1, 8) AS [Scratched Date],
SUBSTRING(cast(ScratchedDate as char), 10, 6) AS [Scratched Time],
SUBSTRING(cast(ChangedPurgeDate as char), 1, 8) AS [Purge Date],
SUBSTRING(cast(ChangedPurgeDate as char), 10, 6) AS [Purge Time],
fl_filename as Dataset, hs_hostname,UserCode
from (((((Media m join TheSites_tab s on m.SiteId = s.ts_sitenum)
join MediaGenT g on m.MediaId = g.mg_medianum)
join TheHosts_tab h on mg_hostnum = h.hs_hostnum)
join TheFiles_tab f on mg_filenum = f.fl_filenum)
join [User] u on mg_usernum = u.UserId)
join Note n on m.NoteId = n.NoteId
where Destroyed = '0';
당신의 데이터에 대해 더 많이 알지 못하면 오직 OUTER JOIN을 사용하는 것이 좋습니다. 더 많은 것을 돕기 위해 어떤 테이블에 70000 개의 행 (Media입니까?)이 있는지 공유하십시오. – amrith
이것은 추측 일 뿐이지 만 Notes가 반드시 Media 테이블에 존재하지 않는다고 생각하기 때문에 Note 테이블을 LEFT JOIN해야합니다. 노트에 LEFT JOIN을 사용하면 메모가없는 경우에도 미디어에서 모든 행을 가져옵니다. – Dan
@Dan은 답변으로 게시 할 수 있으므로 시험해 보겠습니다. –