ايران ويج

نسخه‌ی کامل: کمک برای MYSQL Query
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
2 تا تیبل داریم
topics که اطلاعات تاپیک ها توشه
فیلد ها: id,title

و دومی topicmembers که id کاربرانی که توی یک تاپیک شرکت کردند رو نشون میده
فیلد ها: id, user_id , topic_id

میخوایم با یک query یا بیشتر، اسم، ای دی و تعداد عضو های هر تاپیک رو بر اساس تعداد عضو بچینیم

برای اسم و آی دی تاپیک از query زیر استفاده میکنم:
کد:
select title from topics where id=XYZ
برای تعداد عضو های یک تاپیک هم از این یکی:
کد:
select count(m.id) from topicmembers as m , topics as t where t.id=m.topic_id

حالا اگه بخوایم این دو تا رو ترکیب کنیم،
یعنی لیست تاپیک ها رو بر اساس تعداد نفرات شرکت کننده بچینیم از چه query باید استفاده کنیم؟
کد php:
select t.titlecount(m.idfrom topicmembers as m right join topics as t on t.id=m.topic_id group by t.id order by count(m.id
آقا واقعا ممنونم!
100% کار کرد.
یه توضیح کوچولو هم میدی در مورد right join و اینکه چرا از این استفاده کردی؟
بازم خیلی حیلی ممنونم، عالی بود.
ببخشید الان که جا گذاری کردم توی کد های برنامه،
میبینم که بخاطر تعداد بالای تاپیک ها، خیلی Load سرور میره بالا

راهی هست که مثلا فقط 15 تای اول رو نشون بده و سریعتر لود بشه؟
چون limit 15 رو که میزاریم اول کل تیبل رو لود میکنه بعد 15 تاشو برمیگردونه
غیر از این راهی میشناسید که کل تاپیک ها رو چک نکنه؟
اگه فشار می یاره شما باید از کش استفاده کنی
یعنی تعداد پستها رو هر دفه جمع نکنی جمعش رو داشته باشی هر پستی هم که زده می شه یکی اضافه کنی
join هم اتصال دو تیبل هست کلمه right هم تعیین می کنه که فیلد هایی که در تیبل ست راستی هست حتی اگه معادل تو سمت چپ نداشته باشن رو هم نشون بده
باز هم ممنون بخاطر همه چیز.