Примеры запросов к базе данных сохраняемого чатаSample Persistent Chat database queries

В этом разделе содержатся примеры запросов для базы данных Persistent Chat.This section contains sample queries for the Persistent Chat database.

Используйте следующий пример, чтобы получить список наиболее активных комнат сохраняемого чата после определенной даты.Use the following example to get a list of your most active Persistent Chat rooms after a certain date.

SELECT nodeName as ChatRoom, COUNT(*) as ChatMessages
  FROM tblChat, tblNode
  WHERE channelId = nodeID AND dbo.fnTicksToDate(chatDate) > '1/1/2011'
  GROUP BY nodeName
  ORDER BY ChatMessages DESC

Используйте следующий пример, чтобы получить список наиболее активных пользователей после определенной даты.Use the following example to get a list of your most active users after a certain date.

SELECT prinName as Name, count(*) as ChatMessages
  FROM tblChat, tblPrincipal
  WHERE prinID = userId AND dbo.fnTicksToDate(chatDate) > '1/1/2011'
  GROUP BY prinName
  ORDER BY ChatMessages DESC

Используйте следующий пример, чтобы получить список всех, кто когда-либо отправлял сообщение «Hello World» в нем.Use the following example to get a list of everyone who ever sent a message with "Hello World" in it.

SELECT nodeName as ChatRoom, prinName as Name, content as Message
  FROM tblChat, tblNode, tblPrincipal
  WHERE channelId = nodeID AND userId = prinID AND content like '%Hello World%'

Используйте следующий пример, чтобы получить список членства в группе для определенного участника.Use the following example to get a list of group memberships for a certain principal.

SELECT prinName as Name    
  FROM tblPrincipalAffiliations as pa, tblPrincipal
  where principalID = 7 and affiliationID = prinID

Используйте следующий пример, чтобы получить список всех комнат чата, который пользователь Jane Dow является непосредственным членом.Use the following example to get a list of every chat room that a user, Jane Dow, is a direct member of.

SELECT DISTINCT nodeName as ChatRoom, prinName as Name          
  FROM tblPrincipalRole, tblPrincipal, tblNode
  WHERE  prinRoleNodeID = nodeID AND prinRolePrinID = prinID AND prinName = 'Jane Dow'

Используйте следующий пример, чтобы получить список приглашений, полученных пользователем.Use the following example to get a list of invitations that a user has received.

SELECT prinName
      ,nodeName
      ,invID   
      ,createdOn
  FROM tblPrincipalInvites as inv, tblPrincipal as p, tblNode as n
  where inv.prinID = 5 AND inv.prinID = p.prinID and inv.nodeID = n.nodeID
  ORDER BY invID DESC