Фильтр для SQL результатов - PullRequest
0 голосов
/ 18 марта 2020

У меня следующий запрос написан

SELECT *
FROM 
    (((SocialAndTags 
JOIN 
    SocialManagementTracker ON SocialAndTags.SMTrackerID = SocialManagementTracker.SocialID)
JOIN 
    ProgramCategories ON SocialAndTags.ProgramCategoriesID = ProgramCategories.ProgramID)
JOIN 
    TagCategories ON SocialAndTags.TagCategoriesID = TagCategories.TagID) 
WHERE 
    InitialComment > '2020-03-16 00:00:00.999' 
    AND InitialComment < '2020-03-17 23:59:59.999'
ORDER BY 
    SMTrackerID DESC 

Это не вызывает проблем.

Вот моя проблема. У меня есть 3 таблицы. TagCategories таблиц содержит идентификатор / имя тега. SocialManagementTracker содержит Предмет и более подробную информацию. Таблица SocialAndTags имеет уникальное объявление и извлекает уникальные идентификаторы TagCategories и SocialManagementTracker.

Когда пользователи вводят несколько тегов для элемента, он дважды появляется в таблице SocialAndTags, как Я установил это. Как мне затем использовать вышеупомянутый запрос, чтобы отфильтровать результаты дубликата?

Или я сделал это задом наперед, и мне следовало добавить еще один столбец (столбцы) в мою таблицу SocialAndTags?

1 Ответ

0 голосов
/ 18 марта 2020

Я просмотрел свою базу данных и обнаружил, что ссылаюсь на неправильный внешний ключ. Я также использовал DISTINCT, чтобы получить требуемые результаты.

SELECT 
DISTINCT
SocialID, ProgramArea, Description, SocialURL, InitialComment, DaysToResolve, ResolutionDate FROM 
SocialAndTags 
JOIN SocialManagementTracker ON SocialAndTags.SMTrackerID = SocialManagementTracker.SocialID
JOIN ProgramCategories ON SocialAndTags.ProgramCategoriesID = ProgramCategories.ProgramID
WHERE 
InitialComment > '2020-03-16 00:00:00.999' 
AND InitialComment < '2020-03-17 23:59:59.999'
ORDER BY ResolutionDate, InitialComment DESC
...