PDA

View Full Version : گرفتن اطلاعات از چندین جدول



intel_amd
پنج شنبه 01 آبان 1393, 10:38 صبح
گرفتن اطلاعات در سلکت از چندین جدول کارو سنگین نمیکنه که؟ مثلا select * from user,grade,guide,project,group
حالا اگر مثلا در قسمت * لازم باشه کلیه فیلدهای 3 جدول اول بگیرم اما 2 جدول آخریو فقط بعضی فیلدهاشونو بخوام و فیلدای جداولشونم زیاده و نخام همشونو بگیرم فچ کنم بعد لازمه دیگه کل فیلدای 3 جدول قبلی هم نام ببرم تا بتونم فیلدای این 2 جدول هم نام ببرم؟ یا مثلا راهی هست که بشه گفت guide.*,project.*,user.name,user.family
یا اگر بخوام اون 2 فیلدو نام ببرم مجبور میشم کلیه فیلدهای جدول guide و project هم نام ببرم؟

Veteran
پنج شنبه 01 آبان 1393, 10:53 صبح
بنظرم دیتابیس رو خوب طراحی نکردید که میخواید اینکارو انجام بدید ؟!
5 جدول رو میخواید باهم لود که که چیکار کنید!!!!

nazanin_asadi_1
پنج شنبه 01 آبان 1393, 11:06 صبح
نه مشکلی نیست میتونی این کار رو بکنی
یعنی مثلا سه تا جدول داری با نام های table1 , table2 , table3
حالا میخوای فیلدهای دو جدول اول همشون رو داشته باشی ولی از جدول سوم فقط فیلد id رو داشته باشی (دقت کن که نام فیلدها تکراری نباشه اگه تکراری بود خودش به نام فیلد از عدد 1 شروع میکنه به اضافه کردن )

SELECT
table1.*,
table2.*,
table3.id
from table1
INNER JOIN .........

یه نکته ای که اینجا یاد آور میشم اینه که وقتی به جای نام فیلدها از * استفاده میکنی یه بازه زمانی رو mysql صرف این میکنه که نام فیلدها رو استخراج کنه ولی وقتی نام فیلدها رو وارد میکنی این بازه زمانی دیگه صرف نمیشه

intel_amd
پنج شنبه 01 آبان 1393, 11:54 صبح
بنظرم دیتابیس رو خوب طراحی نکردید که میخواید اینکارو انجام بدید ؟!
5 جدول رو میخواید باهم لود که که چیکار کنید!!!!
خوب چه میشه کرد چاره ای نیست نمیشه که اطلاعات همه چیزو داخل یک جدول بریزم که بعدا یکجا باشند
مثلا اطلاعات مربوط به هر پروژه باید داخل جدول project باشه که از طریق id هر پروژه و id پروژه ای که به هر داشنجو در جدول user هست بشه بعد فهمید چه پروژه ای برای چه داشنجوئی است
یا مثلا اطلاعات مربوط به اساتید راهنما داخل جدول guide هست که هر استادی اطلاعاتش چیه
یا مثلا اطلاعات مربوط به نمرات داخل جدول grade
داخل صفحه ای که حالت گزارش داره و مجبورم خیلی از این اطلاعات مرتبط به یک فردیو نشون بدم مجبورم از همه این جداول سلکت همزمان بگیرم دیگه

Veteran
پنج شنبه 01 آبان 1393, 16:09 عصر
دیتابیس رو بزارید تا بررسی کنیم، شاید راه حل بهتری وجود داشته باشه.

intel_amd
پنج شنبه 01 آبان 1393, 17:37 عصر
فایلش هنوز پیاده سازی نشده که بشه قرار داد اما دقیقا شرح جداول همونه که بالا گفتم

nazanin_asadi_1
پنج شنبه 01 آبان 1393, 20:44 عصر
فایلش هنوز پیاده سازی نشده که بشه قرار داد اما دقیقا شرح جداول همونه که بالا گفتماگه رابطه ها رو درست و اصولی و بهینه طراحی کرده باشین هیچ مشکلی نخواهین داشت در حالت عادی برای سیستم هایی با زیربنای مناسب که رابطه ها بهینه طراحی شده باشن برای مسائل عادی هم حداقل 5 جدول رو باید JOIN کرد تا به نتیجه رسیدشما طراحی کنید و رابط ها رو هم پیاده سازی کنید و هیچ ترسی از این که چندین جدول رو میخواین توی یک کوئری بیارین نداشته باشین