• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

راه حلی برای این مشکل با mysql

hesam67_b

Registered User
تاریخ عضویت
12 می 2010
نوشته‌ها
101
لایک‌ها
8
با سلام. امیدوارم منظور منو درست متوجه بشید.
سوالم رو در غالب یک مثال عنوان میکنم:
فرض کنید دوتا جدول داریم: A و B. که هردو جدول هم حجیم هست.
و فرض کنیدجدول A مربوط به اطلاعات شخص باشه و جدول B هم جدول روابط این افراد باهم باشه.
چطور میتونیم لیستی از افراد رو از جدول A دربیارم که شخص x باهاشون ارتباطی نداره (در جدول B ارتباطی ذکر نشده براش)؟
راه حلی مناسب برای جدول های حجیم میخوام که سرعت بالایی داشته باشه.
از اونجایی که در جدول B مقادیر تکراری وجود داره، ایندکس گذاری نمیتونه زیاد کمک کنه.
 

web-developer

Registered User
تاریخ عضویت
29 دسامبر 2015
نوشته‌ها
576
لایک‌ها
725
ابتدا لیست افراد رو از جدول A استخراج کنید و در یک ارایه بریزید
بعد لیست افرادی که x در جدول B باهاشون ارتباط داشته رو استخراج کنید
دو ارایه رو از هم کسر کنید
این راه php (که سرعت اجراش کمتره)
در روش sql افرادی رو از جدول A انتخاب کنید که در جدول B با x ارتباطی ندارن
اگر x ای دی مورد نظر باشه و در جدولB- ستون sender ای دی ارسال کننده باشه و ستون to ای دی گیرنده باشه
SELECT A.id FROM A,B WHERE( B.sender !=x AND B.to=A.id) or(B.to!=x AND B.sender=x)
 

web-developer

Registered User
تاریخ عضویت
29 دسامبر 2015
نوشته‌ها
576
لایک‌ها
725
خب چی شد برادر
شد؟نشد؟
جو اینجا کلا با جو خیلی از سایتها متفاوته
 
بالا