PDA

View Full Version : query برای وصل کردن 2 جدول



shahroq
سه شنبه 10 خرداد 1384, 11:41 صبح
من میخوام 2 تا جدول رو بهم متصل کنم. این جدول ها از قبل دارای یه سری رکورد هستند.
ولی بعلت اینکه تو جدول child یه سری رکورد هست که اطلاعات مادرشون از تو جدول اصلی پاک شده دو تا جدول بهم وصل نمیشند.
چجوری میشه این رکورها که باعث این موضوع میشن رو search کرد؟
اطلاعات داخل این جدول ها خیلی زیاد تر از این هستند که بشه دستی پیداشون کرد.

shahroq
سه شنبه 10 خرداد 1384, 14:53 عصر
با این query پیدا میشه:


Select * FROM tblChild WHERE IDChild NOT IN (SELECT IDParent FROM tblParent)

AminSobati
سه شنبه 10 خرداد 1384, 23:52 عصر
دوست عزیزم،
اگر چه پیدا کردن این رکوردها به هر حال میتونه بسیار مفید باشه از جهت یکپارچه کردن اطلاعات، ولی زمان ساخت FK شما میتونین از SQL Server بخواین که اطلاعات فعلی رو چک نکنه و اجازه بده که FK ساخته بشه.
اگر با Enterprise Manager قصد دارین FK رو بسازین، کافیه Check Existing Data On Creation رو خالی کنین.
و در TSQL توسط پارامتر WITH NOCHECK این کار انجام میشه.
و اما بوسیله دستور Update میتونین تمام رکوردهای Child که ارتباطی با Parent ندارند رو به یک مقدار مشترک Update کنین و یک رکورد Parent با همون ID به جدول Parent اضافه کنین تا ارتباط منطقی باشه، ضمن اینکه ساخت FK هم باز بدون اشکال خواهد بود.

UPDATE tblChild SET IDChild=-1 WHERE IDChild NOT IN (SELECT IDParent FROM tblParent)
و حالا یک رکورد در جدول Parent با IDParent =-1 اضافه کنین.
موفق باشید