pedram.11
سه شنبه 24 تیر 1393, 18:56 عصر
سلام
من یک جدول با نام A دارم که دارای دو ستون id و user هست
و یک جدول دیگه با نام B که دارای 4 ستون id و IP و DateTime و UserID هست.
در یک sp میخوام از جدول A یوزرهایی رو انتخاب کنم که UserID در جدول B وجود نداشته باشه و اگر وجود داشته باشه پارامتر @ip وجود نداشته باشه، اگر هم @ip وجود داشت از زمان DateTime مثلا 2 ساعت گذشته باشه.
در حقیقت مثل یک سیستم بلاک آیپی هست که اگه آیپی بلاک نشده باشه مقدار IP برابر پارامتر @ip در جدول B ثبت نشده و اگر قبلا بلاک شده بود و تا حالا 2 ساعت گذشته باشه اون آیپی از بلاک در میاد و user رو از جدول A نمایش میده.
من خودم کلی سعی کردم اما به مشکل بر میخورم. لطفا راهنمایی کنید
delete from B where IP=@ip AND DATEDIFF(HOUR,DateTime ,GETDATE())>2;
Select A.user
from A
Join B
on
not exists(Select * from B where B.UserID=A.id) OR
A.id=B.UserID AND
B.IP<>@ip;
من یک جدول با نام A دارم که دارای دو ستون id و user هست
و یک جدول دیگه با نام B که دارای 4 ستون id و IP و DateTime و UserID هست.
در یک sp میخوام از جدول A یوزرهایی رو انتخاب کنم که UserID در جدول B وجود نداشته باشه و اگر وجود داشته باشه پارامتر @ip وجود نداشته باشه، اگر هم @ip وجود داشت از زمان DateTime مثلا 2 ساعت گذشته باشه.
در حقیقت مثل یک سیستم بلاک آیپی هست که اگه آیپی بلاک نشده باشه مقدار IP برابر پارامتر @ip در جدول B ثبت نشده و اگر قبلا بلاک شده بود و تا حالا 2 ساعت گذشته باشه اون آیپی از بلاک در میاد و user رو از جدول A نمایش میده.
من خودم کلی سعی کردم اما به مشکل بر میخورم. لطفا راهنمایی کنید
delete from B where IP=@ip AND DATEDIFF(HOUR,DateTime ,GETDATE())>2;
Select A.user
from A
Join B
on
not exists(Select * from B where B.UserID=A.id) OR
A.id=B.UserID AND
B.IP<>@ip;