У меня есть две таблицыиспользованием (не) в внутреннем соединении SQL
1) tbluser 2) Userlogin
tbluser состоят из
имя пользователя и адрес электронной почты
и userlogin выглядит как
create table userlogin
(
username varchar(50),
[date] datetime
)
я хочу, чтобы выбрать электронную почту от tbluser и проверки UserLogin (таблица 2)
я хочу электронную почту своих сотрудников из таблицы 1, которые не находятся в таблице 2 с выбранного диапазона дат
так я создал процедура
alter proc TMSautomail
@datefrm datetime,
@dateto datetime
as
begin
SELECT
tblUser.Email
from
tblUser
inner join
userlogin
on
tblUser.UserName not in userlogin.username
where userlogin.date between @datefrm and @dateto
end
он показывает мне ошибку, когда я изменить процедуру к этому
alter proc TMSautomail
@datefrm datetime,
@dateto datetime
as
begin
SELECT
tblUser.Email
from
tblUser
left outer join
userlogin
on
tblUser.UserName = userlogin.username
where userlogin.date between @datefrm and @dateto and userlogin.username is null
end
процедура возвращает пустой столбец,
я хочу получать по электронной почте таблицы один и подтвердите имя пользователя, которые не являются в таблице 2,
моя вторая таблица состоит из одной записи
он должен вернуть все строки таблицы один
Там нет необходимости присоединиться, только NOT IN и подзапрос. –
Я тоже использовал это, но когда я добавляю where where, он показывает все строки –
. Покажите этот запрос также –