نحوه نمایش فیلدهای موجود در یک جدول در جدول خالی دیگر در SQL سرور
با سلام و خسته نباشید . یک سوال داشتم در این خصوص که فرض کنید ما یک جدول با نام P داریم که در آن شماره کدملی و نام و فامیل تمامی اعضاء و جود دارد و کدملی نیز کلید اصلی می باشد . حالا ما یک جدول دیگر داریم با نام T که مشخصات کدملی برخی از این افراد را در آن ثبت می کنیم (ممکن هست یک کدملی نیز چند بار ثبت شده باشد ). حالا سوال من این هست که می خوام بدانم که کدملی کدام یک از افراد جدول p هنوز در جدول T ثبت نشده . و یا به نوعی کدام یک از افراد هنوز اسم آنها در جدول T درج نشده . البته دستور مورد نظر در SQL Server 2008 با تشکر فراوان
4 پاسخ
دوست عزیز سلام . من براتون داخل نرم افزار access توضیح میدم امیدوارم با کارتون بیاد.
اول جدول P رو با محتویاتی که گفته بودید بسازید
جدول T رو هم به همون صورت قبلی بسازید
حالا وارد قسمت Query Design بشید و هر دو تا جدول رو اونجا Add کنید
تمام فیلد های هر دوتا جدول رو وارد Query کنید و لینک بین کلید اصلی ها رو برقرار کنید
در آخر Query رو Run کنید و خواهید دید که فیلد های هر دو جدول اونجا دیده میشه
البته من سعی کردم مختصر و مفید جواب بدم که زیاد وقتتون گرفته نشه
خدانگهدار
از شما دوست عزیز کمال تشکر و سپاس را دارم ولی فکر کنم سوالم را بد مطرح کردم .
ببینید فرض کنید ما مشخصات تمامی اعضاء خود را در یک جدول با نام p داریم . حالا ما به هر یک از این اعضا که هدیه می دهیم کدملی اون فرد را در جدولی به نام T ثبت می کنیم . حالا می خواهیم ببینیم که کدام یک از اعضاء ما تا کنون هدیه دریافت نکرده اند (یعنی افرادی که کدملی آنها در جدول T درج نشده باشد دراصل هدیه دریافت نکرده اند) .
باتشکر
SELECT * FROM P WHERE NationalCode NOT IN ( SELECT NationalCode FROM T )
این کد SQL افرادی رو به ما نشون میده که کد ملی شون توی جدول P هست اما توی جدول T نیست
- اینجا من فرض کردم که توی جدول P یه فیلد داریم به اسم کد ملی ( NationalCode ) و در جدول T هم یه فیلد کد ملی داریم به اسم ( NationalCode )
با سلام.
با توجه به توضیحاتتون باید جدول p به سمت جدول T کلید خارجی بفرسته. با این فرض، شما میتونید تمام شماره ملی های جدول p رو به دست بیارید و سپس با استفاده از عملگر except اونا رو از شماره ملی های موجود در جدول T کم کنید. با این کار تنها شماره ملی هایی باقی میمونند که به قول شما جایزه نگرفته اند. به صورت زیر:
select SSN from p except select SSN from T go