PDA

View Full Version : چگونگی پر کردن یک فیلد جدول با دستورات SQL



samandari
پنج شنبه 18 فروردین 1384, 11:07 صبح
سلام دوستان
من میخواهم با استفاده از دستورات SQL مقادیر یک فیلد جدول را بر اساس مقادیر یک جدول دیگه پر کنم به مثال زیر توجه کنید

جدول 1
کد------نام---------------- نام خانوادگی-------------------------- کد نام پدر
1-------علی-------------------سمندری---------------------------------0
2 ------رضا -------------------حسینی--------------------------------- 0
3 ------فرهاد-------------------سمندری ---------------------------- 1
4------ حمید-------------------سمندری ----------------------------- 1
5 ------فرشید-------------------حسینی --------------------------- 2

مفهوم جدول این است که علی سمندری و رضا حسینی پدر یا (Parent) ندارند و پدر فرهاد سمندری , علی سمندری میباشد.

حال بنا به نیاز یک فیلد جدید در جدول ایجاد میکنیم که از نوع Text میباشد و میخواهیم نام پدر هر شخص در آن ریخته شود در صورتی که شخص پدر نداشته باشد مقدار NULL ریخته شود. ضمناً فرض کنید که این کار را حتما با استفاده از دستورات SQL باید انجام داد.

علیرضا جاوید
پنج شنبه 18 فروردین 1384, 16:29 عصر
SELECT PEOPLE.NAME, PEOPLE.LNAME, PEOPLE_1.NAME AS FATHERNAME, PEOPLE_1.LNAME AS FATHERLASTNAME
FROM PEOPLE LEFT OUTER JOIN
PEOPLE PEOPLE_1 ON PEOPLE.ID = PEOPLE_1.PARENT

AminSobati
جمعه 19 فروردین 1384, 00:33 صبح
دوست عزیزم،
شما نیازی ندارید که حتما نام پدر رو در جدول به صورت فیزیکی ذخیره کنین، بلکه مثل Query در پست قبلی میتونین فقط موقع نمایش، نام پدر رو استخراج کنین.
اما اگر به جهت Performance یا هر دلیل دیگه ای میبایست این کار انجام بشه، به این روش عمل کنید(با فرض اینکه فیلد ParentName به جدول اضافه شده و حاوی مقدار NULL هستش):

UPDATE MyTable SET ParentName=tmp.LastName FROM (SELECT * FROM MyTable) tmp WHERE MyTable.ParentID=tmp.Code
اما به یاد داشته باشین که با تغییر مقدار فیلد ParentID میبایست مقدار ParentName هم به روز بشه.
موفق باشید