View Full Version : اضافه کردن 2 ستون به یک جدول در mysql
mehrtadbir
دوشنبه 17 تیر 1392, 21:31 عصر
سلام
ما دو جدول داریم که هر یک بطور مثال دارای 2500 رکورد اطلاعات هستند.
ستون id یکی از جداول با ستون contentid جدول دیگر در این دیتا بیس ، یکسان هستند.
ما تصمیم داریم اطلاعات دو ستون a و ستون b از یک جدول را به جدول دیگر اضافه کنیم.
برای این منظور در phpmyadmin در قسمت sql دستور زیر را اجرا کردیم .
INSERT INTO jadval2 (soton1, soton2)
SELECT soton1, soton2 FROM jadval 1;
همه اطلاعات مد نظر منتقل شد اما اشکال اینجاست که این رکوردها بعد از آخرین رکورد جدول 2 قرار گرفتند.
رکوردهای ما در دو جدول متناظر هستند و ما می خواهیم اولین رکورد جدول 1 در ردیف خود در جدول 2 قرار گیرد .
ممنون خواهم بود دوستان راهنمایی کنند
mehrtadbir
سه شنبه 18 تیر 1392, 19:44 عصر
دوستان گرامی خواهشمند است چنانچه اطلاعاتی در این خصوص دارند کمک کنند.
پیشاپیش از توجه شما سپاسگذارم و منتظر نظرات گرم شما هستم
afshin9032
سه شنبه 18 تیر 1392, 20:07 عصر
میتونی جدول رو truncate کنی و دوباره اطلاعات رو بریزی ، منتها فیلد primary جدول 1 رو هم در جدول دو مقداردهی کن .
mostafa_shaeri_tj
چهارشنبه 19 تیر 1392, 03:22 صبح
شما نیاز به آپدیت داری نه درج :
update jadval2 set soton1=(select soton1 from jadval1 where id=jadval2.contentid limit 1),
soton2=(select soton2 from jadval1 where id=jadval2.contentid limit 1)
mehrtadbir
پنج شنبه 20 تیر 1392, 11:02 صبح
میتونی جدول رو truncate کنی و دوباره اطلاعات رو بریزی ، منتها فیلد primary جدول 1 رو هم در جدول دو مقداردهی کن .
لطف می کنید بیشتر توضیح بفرمایید .
mehrtadbir
پنج شنبه 20 تیر 1392, 11:05 صبح
شما نیاز به آپدیت داری نه درج :
update jadval2 set soton1=(select soton1 from jadval1 where id=jadval2.contentid limit 1),
soton2=(select soton2 from jadval1 where id=jadval2.contentid limit 1)
لطفا نقش where و limit رو توضیح مختصری می فرمایید.
با تشکر از شما
afshin9032
پنج شنبه 20 تیر 1392, 14:33 عصر
راه حل بهتر اینه که یک فیلد عددی برای متناظر کردن ردیف ها ایجاد کنی (معادل همون فیلد primary key )
mehrtadbir
دوشنبه 24 تیر 1392, 05:16 صبح
ضمن تشکر صمیمانه از همراهی دوستان بزرگوار
همانطور که عرض کردم ما دو تیبل، بصورت زیر داریم
تیبل اول ddff_profile_co که ddff پیشوند آن است و ستونهای آن به شرح زیر است:
id
soton2
soton3
الی
soton9
تیبل دوم old_detail_co که old پیشوند تیبل بوده و ستونهای آن به شرح زیر است:
id
contentid
lat
lng
در این دو تیبل id در تیبل 1 و contentid در تیبل 2 یکسان هستند .
چطور می توانیم مقادیر lat و lng از تیبل 2 را بر اساس contentid به soton2 و soton3 ایمپورت کنیم.
برای مثال اگر در تیبل دوم دارای مقادیر زیر بودیم
---id----------contentid----------lat-----------lng
-50.96--------35.85------------5---------------1
-50.97--------35.82------------8---------------2
lat و lng به گونه ای در soton2 و soton3 از تیبل 1 ایمپورت گردد که id در تیبل 1 دارای مقادیر 5 و 8 باشد (contentid در تیبل 2 برابر با id در تیبل 1 است).
گفتنی است soton2 و soton3 هم اکنون null هستند و در حالی که contentid در تیبل 2 برابر با id در تیبل 1 است تعداد رکوردهای تیبل یک بیشتر از تیبل 2 است ( بعد از آخرین id مواردی اضافه شده است ) و ممکن است contentid در تیبل 2 دارای مقادیری باشد که در id تیبل 1 وجود نداشته باشد ( معدود رکوردها در تیبل یک حذف شده اند البته اگر لازم باشد می توانیم این رکوردها را مجددا وارد کنیم ).
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.