Разработка
01
Окт
2

Поиск расшаренных записей с помощью SQL

Следующий SQL-запрос позволяет найти все записи Интереса расшаренные на определенного пользователя:

select
	fl.subject
from
	PrincipalObjectAccess poa,
	FilteredLead fl,
	FilteredSystemUser fsu
where
	1=1
	and poa.ObjectTypeCode = 4
	and poa.ObjectId = fl.leadid
	and poa.PrincipalId = fsu.systemuserid
	and fsu.domainname = 'D2012\Administrator'
	-- and fsu.fullname = 'name of user'

А следующий запрос позволяет отобрать записи Интереса расшаренные на Рабочие группы, в которые входит Пользователь:

select
	fl.subject
from 
	FilteredLead fl,
	PrincipalObjectAccess poa,
	FilteredTeam ft
where
	1=1
	and poa.ObjectTypeCode = 4
	and poa.ObjectId =fl.leadid
	and poa.PrincipalId = ft.teamid
	and ft.teamid in (
		select
			ft.teamid
		from
			filteredteammembership fm,
			filteredsystemuser fsu,
			filteredteam ft
		where 
			1=1
			and fm.systemuserid=fsu.systemuserid
			and ft.teamid=fm.teamid
			and fsu.domainname = 'D2012\Administrator'
	)
Комментарии (2)
  • Анатолий 01.10.2013

    А зачем это условие «1=1»

  • slivka_83 01.10.2013

    Так гораздо легче комментить условия, т.к. у каждого условия своя строка, начинающаяся с and
    Соответственно, чтобы быстро на время «выкинуть» его из запроса достаточно перед ним поставить —

*

code