У меня есть запрос, который объединяет около 5 таблиц и отображает все результаты. Записи показывают, что в веб-приложении должно быть около 70000 записей, но когда я делаю это, он отображает только 51000 записей в MSSQL 2008. Мне было интересно, как я могу манипулировать функциями соединения, чтобы отображать все записи 70000, возможно, добавляя внешнее соединение или внутреннее соединение? У меня не слишком много опыта работы с функцией соединения, и я надеялся, что кто-то отредактирует мой запрос, чтобы отобразить все записи в этих 5 таблицах. Я знаю, что это быстрое решение для опытного программиста, и я ценю время и усилия заранее! ПриветствияПрисоединиться к функции в 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 строк (это носитель) или какой-либо другой? – amrith
Это всего лишь предположение, но вы, вероятно, должны ПОЛНОСТЬЮ ПРИСОЕДИНИТЬ к таблице примечаний, поскольку я предполагаю, что Notes не обязательно существует в таблице Media. Использование LEFT JOIN в Note гарантирует, что вы получите все строки из Media, даже те, у которых нет заметки. – Dan
@ Dan может отправить сообщение в качестве ответа, чтобы я мог его протестировать. –