ВЫБЕРИТЕ, ОТ, ВНУТРЕННЕЕ СОЕДИНЕНИЕ, ГДЕ функция - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть две таблицы «пользователи» и «emp_details». «пользователи» - это менеджеры филиалов, у которых есть логин для мониторинга сотрудников своего филиала. «emp_details» включает сотрудников, работающих в разных филиалах, включая менеджеров филиалов.

, когда входящий в него менеджер филиала («пользователи») должен получать данные из «emp_details», только если эта конкретная ветка «пользователи» (код: location) match.

SELECT emp_details.emp_no, emp_name, designation, emp_details.location
 FROM emp_details
 INNER JOIN users
 WHERE users.location = emp_details.location

, использованный выше код, но показывает данные для всех пользователей, созданных не в соответствии с местоположением пользователей, вошедших в систему. Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

Похоже, что вы хотите предложение WHERE - после исправления вашего предложения WHERE, которое будет являться предложением ON:

SELECT ed.emp_no, ed.emp_name, ed.designation, ed.location
FROM emp_details ed JOIn
     users u
     ON u.location = ed.location
WHERE u.login_id = ?;

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

0 голосов
/ 17 февраля 2020

По вашему запросу он выдаст все данные, которые имеют соответствующие местоположения. Если вы хотите получить данные, которые относятся к местоположению указанного пользователя c, вы должны отфильтровать этого пользователя по запросу. В противном случае запрос выведет все соответствующие данные.

    DECLARE @UserName AS Varchar(50)

    SELECT ed.emp_no, ed.emp_name, ed.designation,ed.location
    FROM emp_details ed
    INNER JOIN users u ON u= ed.location
    WHERE u.User_Name = @UserName

Обратите внимание, что вышеуказанным параметром может быть имя пользователя или идентификатор пользователя или любая другая вещь, но вы должны передать это в запрос sql.

...