PDA

View Full Version : joind دو جدولی که کلیدی برای ارتباط ندارند؟



نیما حتمی
یک شنبه 25 اردیبهشت 1390, 08:17 صبح
با سلام

دوستان من دو جدول دارم که در آنها به دلیل وجود داده های تکراری نمی تونم فیلدی رو به عنوان کلید انتخاب کنم.حالا رسیدم به قسمت طراحی فرم گزارش و باید بین این دو جدول joind ببندم نمی شه راه حل دوستان چیه؟

meysamda
یک شنبه 25 اردیبهشت 1390, 10:41 صبح
خب یه query بنویس (با دستور JOIN ON) و Tableها رو روی ستون های مشخص شده باهم join کن

علیرضا حسن زاده
یک شنبه 25 اردیبهشت 1390, 10:59 صبح
join رو باید رو دوتا فیلد که در هر دوجدول مشترک هستن و بر اساس اونها می خوای گزارش رو تهیه کنی ایجادکنی
اگه تو بخش SQL می پرسیدی شاید جواب های بهتری داده می شد

نیما حتمی
یک شنبه 25 اردیبهشت 1390, 11:14 صبح
یعنی مهم نیست کلید باشن یا نباشن اون فیلدهایی که دارم براساس اونا joind می بندیم؟

f4rib0rz
یک شنبه 25 اردیبهشت 1390, 11:49 صبح
یعنی مهم نیست کلید باشن یا نباشن اون فیلدهایی که دارم براساس اونا joind می بندیم؟
(تا اونجایی که من اطلاع دارم)اینکه تو join چه فیلد هایی رو تو select بیاری فرقی نمیکنه ولی حتما تو قسمت شرط join باید دوتا فیلد که تو هر دو جدول مشترک هست رو بیاری تا مقادیر تکراری نشه ...
پیشنهاد من ایه که توی جداولت یه فیلد کلید اضافه کنی که می تونه یه فیلد Identity باشه که دیگه تو کد نویسیت تغییری ایجاد نشه ...

ehsan.moolaei
یک شنبه 25 اردیبهشت 1390, 12:31 عصر
خب اون فیلدهایی رو که ممکنه تو جدولت تکرار بشن رو کلید ترکیبی کن

نیما حتمی
یک شنبه 25 اردیبهشت 1390, 13:07 عصر
آره تکراری هستن چطوری کلید ترکیبی درست کنم دوست محترم

ehsan.moolaei
یک شنبه 25 اردیبهشت 1390, 13:19 عصر
چطوری کلید ترکیبی درست کنم
توی sql توی table ی که میخوای این کارو انجام بدی با کلید ctrl هر فیلدی رو که میخوای انتخاب کن بعدش راست کلک رو یکیشون و set primery key
موفق باشی

نیما حتمی
یک شنبه 25 اردیبهشت 1390, 14:11 عصر
دوست عزیز اونقدرا هم...نیستیم.بنده گفتم چون تکراری هست دادها یی که وارد میشن توسط کاربر نمی تونم کلید در نظر بگیرمشون

masoudmok
یک شنبه 25 اردیبهشت 1390, 14:39 عصر
سلام نیما جان
اگه فیلدای جدولاتو بگی و مشخص کنی تو گزارشت چی لازم داری من میتونم بهت کمک کنم . البته همه ی دوستان میتونن راحت تر بهت کمک کنن ...
به مثال زیر نگاه کن ...

select * from t1,t2
where t1.field1 = t2.field2

البته این در صورتیه که منظورت از join پیوند طبیعی باشه .
با دادن یه شرح حال کوچیک جواب دقیقو میگیری

نیما حتمی
یک شنبه 25 اردیبهشت 1390, 14:45 عصر
مرسی مسعود جان از راهنمایت
من از دو تا جدول می خوام اطلاعاتشو بکشم بیرون البته با فیلتری که کاربر رو داده ها می زاره.حالا چون داده ها تقریبا در هر دو جدول تکراری هست نمی تونم فیلدی رو به عنوان کلید قرار بدم.آیا میشه دو فیلد همسان هم باشند (نوع و.....)ولی کلید نباشن در 2 جدول مختلف و بشه این 2 جدول رو joind کرد برای استخراج داده ها؟

علیرضا حسن زاده
یک شنبه 25 اردیبهشت 1390, 17:36 عصر
یعنی مهم نیست کلید باشن یا نباشن اون فیلدهایی که دارم براساس اونا joind می بندیم؟
کار ساده ای هست می تونید امتحان کنید!؟ یه Query برای تست گرفتن که دیگه مشکلی نداره. اما سعی کنید یه کلید بسازید کارتون برای قسمت های دیگه برنامه هم راحت تر میشه

f4rib0rz
یک شنبه 25 اردیبهشت 1390, 20:04 عصر
دوست عزیز نیما حتمی (http://barnamenevis.org/member.php?137382-%D9%86%DB%8C%D9%85%D8%A7-%D8%AD%D8%AA%D9%85%DB%8C) یه فیلد Identity به جدوالت اضافه کن خیال خودت راحت کن .. کلا تو برنامه جاهای زیادی به کلید نیاز داری مثلا برای ویرایش و حذف برای جستجو یه فیلد اضافه می کنی خودش موقع درج یه رکورد جدید یه مقدار auto توش میذاره.... خیلی راحت.. (در غیر اینصورت شاید الان با چندتا رکوردی که وارد کردی جواب بگیری و تو زمان عمل داده هایی وارد میشه که غیر قابل پیش بینیه)

ahmadreza_javanmard
دوشنبه 26 اردیبهشت 1390, 01:16 صبح
سلام
فکر کنم دستور زیر به دردت بخوره توی این دستور نیازی به فیلد کلید نداری


Select * from <table name> UNION ALL Select * from <table name 1>

masoudmok
دوشنبه 26 اردیبهشت 1390, 09:50 صبح
نیما جان فیلدهایی که قراره واسه join در نظر گرفته بشن البته توی شرط کافیه هم نوع باشن .
کلید بودن یا نبودن یا نام فیلد یا ... تاثیری روی حاصل query نمیذاره . موفق باشی