ورود

View Full Version : ارتباط چند جدول در MYSQL



محمد رضا فاتحی
پنج شنبه 05 آذر 1394, 18:11 عصر
سلام...به همه دوستای عزیز...من برای اولین باره که میام تو این بخش و امیدوارم بخش پویایی باشه و من سریع به جوابم برسم:لبخند:

ما یه سرور داریم و روی سرورمون یه پایگاه داده که فرض می کنیم شامل سه تا جدول است که با یه کلید به هم متصل هستند
هر کدوم از این جدول ها هم حدود 10000 تا رکورد داره که حاصل چند ماه کارکرد این برنامه در سطح کشوره...

تو یکی از امکانات برنامه(سی شارپ تحت ویندوز) باید این سه تا جدول با هم join بشن... دستور join رو نوشتیم و مشکلی هم در اجرا تو ابعاد کوچیک نداره...
این امکان برنامه هم تا مدتی به درستی کار می کرد و مشکلی نداشت... حالا چند وقته تو سی پنل وقتی کوئری رو اجرا می کنم حدود 6 دقیقه طول می کشه تا نتیجه رو بهم برگردونه...
می خواستم از دوستانی که تجربه کار دارند بپرسم که آیا مشکل سر تعداده(هر چند می دونم این تعداد زیاد نیست) یا سر کوئری من!!
نمونه کوئری مد نظر من...
select std.name+' '+std.famil as name , lesson.name from std inner join gavelesson on std.id=gavelesson.stdid inner join lesson on lesson.id=gavelesson.lessonid
where lesson.name='Riazi'

golbafan
پنج شنبه 05 آذر 1394, 22:42 عصر
سلام
1- فیلدهایی که دارید جوین میکنید رو همگی شون رو ایندکس کنید
2- از انجین myisam بجای innodb استفاده کنید
3- فیلدهایی مثل name رو باید تغییر نام بدید مثلا name1 هم برای اسم اصلی فیلد و هم اسم مستعارشون
4- کوئری:
SELECT
CONCAT(std.NAME1,' ',std.famil) AS STDNAME,
lesson.NAME1
FROM
std
INNER JOIN gavelesson ON std.id = gavelesson.stdid
INNER JOIN lesson ON lesson.id = gavelesson.lessonid
WHERE
lesson.NAME1 = 'Riazi';

محمد رضا فاتحی
شنبه 07 آذر 1394, 07:29 صبح
ممنون....مورد دو رو توضیح می دید؟

***
آقا حل شد...دمت گرم

golbafan
شنبه 07 آذر 1394, 15:01 عصر
ممنون....مورد دو رو توضیح می دید؟

***
آقا حل شد...دمت گرم

خواهش میکنم قابلی نداشت...

ALTER TABLE yourtable ENGINE = myisam