<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rt-wiki.bestpractical.com/index.php?action=history&amp;feed=atom&amp;title=GetWatcherInfoByTicket</id>
	<title>GetWatcherInfoByTicket - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://rt-wiki.bestpractical.com/index.php?action=history&amp;feed=atom&amp;title=GetWatcherInfoByTicket"/>
	<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=GetWatcherInfoByTicket&amp;action=history"/>
	<updated>2026-08-22T05:30:48Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://rt-wiki.bestpractical.com/index.php?title=GetWatcherInfoByTicket&amp;diff=1428&amp;oldid=prev</id>
		<title>Admin: 2 revisions imported</title>
		<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=GetWatcherInfoByTicket&amp;diff=1428&amp;oldid=prev"/>
		<updated>2016-04-06T20:11:16Z</updated>

		<summary type="html">&lt;p&gt;2 revisions imported&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The following query select [[Watcher]]s of [[Ticket]] #6&lt;br /&gt;
&lt;br /&gt;
== MySQL version of the query ==&lt;br /&gt;
&lt;br /&gt;
 SELECT DISTINCT&lt;br /&gt;
    t1.id Ticket_id,&lt;br /&gt;
    g2.id RoleGroup_id,&lt;br /&gt;
    g2.Type Role_Type,&lt;br /&gt;
    cgm3.MemberId RoleMember_id,&lt;br /&gt;
    p4.PrincipalType,&lt;br /&gt;
    u5.Name&lt;br /&gt;
 FROM&lt;br /&gt;
    Tickets t1,&lt;br /&gt;
    Groups g2,&lt;br /&gt;
    CachedGroupMembers cgm3,&lt;br /&gt;
    Principals p4,&lt;br /&gt;
    Users u5&lt;br /&gt;
 WHERE&lt;br /&gt;
    t1.id = 6 AND&lt;br /&gt;
    g2.Domain = &amp;#039;RT::Ticket-Role&amp;#039; AND g2.Instance = t1.id AND&lt;br /&gt;
    cgm3.GroupId = g2.id AND&lt;br /&gt;
    p4.id = cgm3.MemberId AND&lt;br /&gt;
    p4.Disabled = 0 AND&lt;br /&gt;
    p4.PrincipalType = &amp;#039;User&amp;#039;&lt;br /&gt;
    AND u5.id = p4.id;&lt;br /&gt;
&lt;br /&gt;
== Postgres version of the same query ==&lt;br /&gt;
&lt;br /&gt;
 SELECT DISTINCT&lt;br /&gt;
    t1.id AS Ticket_id,&lt;br /&gt;
    g2.id AS RoleGroup_id,&lt;br /&gt;
    g2.Type AS Role_Type,&lt;br /&gt;
    cgm3.MemberId AS RoleMember_id,&lt;br /&gt;
    p4.PrincipalType,&lt;br /&gt;
    u5.Name&lt;br /&gt;
 FROM&lt;br /&gt;
    Tickets t1,&lt;br /&gt;
    Groups g2,&lt;br /&gt;
    CachedGroupMembers cgm3,&lt;br /&gt;
    Principals p4,&lt;br /&gt;
    Users u5&lt;br /&gt;
 WHERE&lt;br /&gt;
    t1.id = 10880 AND&lt;br /&gt;
    g2.Domain = &amp;#039;RT::Ticket-Role&amp;#039; AND g2.Instance = t1.id AND&lt;br /&gt;
    cgm3.GroupId = g2.id AND&lt;br /&gt;
    p4.id = cgm3.MemberId AND&lt;br /&gt;
    p4.Disabled = 0 AND&lt;br /&gt;
    p4.PrincipalType = &amp;#039;User&amp;#039;&lt;br /&gt;
    AND u5.id = p4.id;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
* limit tickets records to ticket #6 (1)&lt;br /&gt;
&lt;br /&gt;
 t1.id = 6 AND&lt;br /&gt;
&lt;br /&gt;
* join groups to it and limit it to only ticket&amp;#039;s(1) role groups(2)&lt;br /&gt;
&lt;br /&gt;
 g2.Domain = &amp;#039;RT::Ticket-Role&amp;#039; AND g2.Instance = t1.id AND&lt;br /&gt;
&lt;br /&gt;
* each group(3) has members, join CGM table and found members of (3)&lt;br /&gt;
&lt;br /&gt;
 cgm3.GroupId = g2.id AND&lt;br /&gt;
&lt;br /&gt;
* all users and groups has principal(4) record with same id, lets find all this principal records for our members(3)&lt;br /&gt;
&lt;br /&gt;
 p4.id = cgm3.MemberId AND&lt;br /&gt;
&lt;br /&gt;
* principal(4) shouldn&amp;#039;t be disabled&lt;br /&gt;
&lt;br /&gt;
 p4.Disabled = 0 AND&lt;br /&gt;
&lt;br /&gt;
* it(4) should be user&lt;br /&gt;
&lt;br /&gt;
 p4.PrincipalType = &amp;#039;User&amp;#039; AND&lt;br /&gt;
&lt;br /&gt;
* and finaly join user(5) info to result set.&lt;br /&gt;
&lt;br /&gt;
 u5.id = p4.id;&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
&lt;br /&gt;
* if you want particular type of watcher then add clause:&lt;br /&gt;
&lt;br /&gt;
 g2.Type = &amp;#039;Requestor&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
[[GetTicketInfoByWatcher]]&lt;br /&gt;
&lt;br /&gt;
[[DBSchema]], SQL ANSI&amp;#039;92 standard, MySQL/PostgreSQL docs&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>