OCS SQL-запрос для получения сообщений IM для определенных пользователей

Я хочу вывести все сообщения IM из базы данных OCS (LcsLogs) для разных пользователей. Я хочу все сообщения, которые они отправляют или получают. У меня есть что-то вроде следующего на данный момент:

SELECT * from dbo.Messages where
Messages.FromId = '111' or Messages.ToId = '111' or
Messages.FromId = '222' or Messages.ToId = '222' or
Messages.FromId = '333' or Messages.ToId = '333'

Я также хочу убедиться, что я ищу все правильные таблицы и т.д., и, будучи новичком в базах данных LcsLogs, я все еще не уверен, достаточно ли мой базовый запрос достаточно понятен. Я видел следующий запрос онлайн:

 SELECT * from dbo.Messages, dbo.Users where
 dbo.Users.UserId = Messages.FromId

Но я получил довольно много дублирующихся сообщений, используя этот запрос, и не был уверен, почему мы запрашиваем dbo.Users. Любая помощь с этим будет высоко ценится.

С уважением,

1 ответ

Решение

Вы можете использовать этот запрос, чтобы получить информацию, которую вы хотите:

SELECT * from dbo.Messages where
  Messages.FromId in ('111', '222', '333')
  or
  Messages.ToId in ('111', '222', '333')

или чтобы удалить дубликаты в вашем другом запросе, используйте отличающиеся как это:

SELECT distinct  * from dbo.Messages, dbo.Users where
 dbo.Users.UserId = Messages.FromId
Другие вопросы по тегам