PDA

View Full Version : برقرار ارتباط بین دو جدول



javad_r_85
سه شنبه 26 بهمن 1389, 18:35 عصر
سلام

من یه جدول دارم واسه مشخصات کاربر و یه جدول دیگه واسه شهریه که شماره کاربر در اون ذخیره می شه ..
حالا من چطوری می تونم بفهمم که کدام کاربران شهریه ندادند؟؟؟؟؟؟

f4rib0rz
سه شنبه 26 بهمن 1389, 22:43 عصر
خب کاری نداره این دستور sql

select username from tbluser,tblshahreye where shahreye=0
tbluser: نام جدول کاربران
tblshahreye: نام جدول شهریه
shahreye: نام فیلدی که مقدار شهریه در اون ثبت میشه
من فکر کنم شما اینطوری ننوشتی ، فکر کنم هرکی شهریه داده نام کاربریش تو اون یکی جدول درج میشه و گرنه که اسمش تو اون حدول نیست اگر اینطوریه که
اول باید بگی

string sql = "select *( from tbl shahreyeh where username={0}";
sql=string.format(sql,username);


بعد نتیجه این sql رو بزاری تو یه datatable بعد بگی اگه

datatable.rows.count>0
این یعنی شهریه رو داده و اسم کاربر مورد نظر تو اون جدول بوده

javad_r_85
سه شنبه 26 بهمن 1389, 23:03 عصر
سلام.



خب کاری نداره این دستور


اتفاقا کاری هم داره به این سادگی هم نیست من دوجدول دارم که یکی شامل یوزر ایدی ، نام ، نام خانوادگی و ..... می باشد و در جدول شهریه نیز یوزر آیدی ، مقدار شهریه و تاریخ واریز می باشد ..در جدول کاربران 4 تا کاربر و جود دارد و در جدول شهریه 2 کاربر شهریه دادن .

حالا اگر من این دو جدول را به هم جوین کنم و یوز آیدی ها را به هم وصل کنم





SELECT Pay.*, User.*
FROM Pay INNER JOIN User ON User.UID = Pay .UID;




که فقط همون دو کاربری که شهریه دادن را بر می گردونه که من اون دو تایی که شهریه ندادند را می خوام و اگر کلید خارجی را حذف کنم مقدار برگشتی 8 رکورد را بر می کردونه که هر کاربر را دو بار تکرار کرده که بازم اون نتیجه ای که من می خوام نیست.

Sajjad.Aghapour
سه شنبه 26 بهمن 1389, 23:57 عصر
کمی درمورد TSQL بخونید
IN, Except و ... عملگرهایی هستن که به راحتی میتونید این امکان رو پیاده سازی کنید

mPalizdar
چهارشنبه 27 بهمن 1389, 09:02 صبح
http://explainextended.com/2010/02/10/sql-server-except-all/

f4rib0rz
چهارشنبه 18 اسفند 1389, 13:48 عصر
من که هنوز می گم خیلی راحته . چون شما توضیح کاملی ندادی دوستان نتونستن کمک زیادی بکنن .
با این توضیحاتی اگه اشتباه نکنم هر کی که شهریه داده تو جدول شهریه درج میشه . با این حساب این میشه



select *
from user,pay
where user.id<>pay.id;


اگه بازم جواب نگرفتی فیلد های جدولت با همون مقادیری که فعلا توش هست رو اینجا بزار تا بگم چی کار کنی .

zimzim
پنج شنبه 19 اسفند 1389, 13:16 عصر
سلام
شما می تونید از عملگر مجموعه ای Not Exists و sub query استفاده کنید .
با این روش مشکلتون حل میشه .