2009-11-09 3 views
0

У меня есть запрос, который я не уверен, как писать. Я не эксперт по SQL, и это довольно неприятно. Я надеюсь, что кто-то здесь поможет мне в этом.SQL Server - Вложенный запрос

У меня есть таблица под названием «Участники», которая имеет список имен пользователей на моем веб-сайте. Мне нужно получить список пользователей, принадлежащих одному или нескольким подразделениям в моей компании, а также одному или нескольким менеджерам. Конкретные подразделения и менеджеры выбираются пользователем на моем веб-сайте. У меня есть список менеджеров и подразделений, которые они выбрали. Я также проанализировал их в список с разделителями-запятыми. Вот краткое изложение информации таблицы я пытаюсь связать воедино:

Пользователи

  • UserName
  • StoreID

магазин

  • StoreID
  • PostalCode

Отдел

  • PostalCode
  • ManagerID

менеджер

  • ManagerID
  • ManagerName

Как получить список членов на основе списка регионов и менеджеров, которые пользователь выбирает? Искренне благодарю вас за помощь!

+0

Этот «вид» выглядит как домашнее задание для меня :) –

+0

Какой курс вы принимаете? Несомненно, это домашнее задание. –

+0

Я обещаю, что это не домашнее задание. Я просто теряюсь на вложенных объединениях. – user70192

ответ

4
Select Members.UserName 
From Members 
    Join Store On Members.StoreID = Store.StoreID 
    Join Division On Store.PostalCode = Division.PostalCode 
    Join Manager On Division.ManagerID = Manager.ManagerID 
Where Division.PostalCode In (12345, 12346) 
    And Manager.ManagerID In (1, 2, 3, 4) 
0

Вы говорите, что у вас есть список менеджеров и подразделений. У вас есть ManagerID и PostalCode? Если это так, вам не нужно вступать в таблицу менеджеров, так как они оба находятся в таблице разделов.

SELECT 
    Members.UserName 
FROM 
    Members 
    INNER JOIN 
    Store 
    ON 
     Members.StoreID = Store.StoreID 
    INNER JOIN 
    Division 
    ON 
     Store.PostalCode = Division.PostalCode 
WHERE 
    Division.PostalCode IN (Use comma delimited postal codes here) 
    AND 
    Division.ManagerID IN (Use comma delimited manager ids here) 
Смежные вопросы