PDA

View Full Version : مشکل order by در join



olampiad
شنبه 15 اسفند 1394, 18:42 عصر
سلام و خسته نباشید به دوستان عزیز
به این کوئری من ی نیگا بندازین.
SELECT company.id,company.title,company_type.company_id FROM `company` INNER JOIN company_type ON company_type.group_id=26
این کوئری به خوبی کار میکنه
فقط
من میخوام order by بر حسب فیلد title جدول زcompany باشه.
این کار رو چ طوری انجام بدم.
order by title ask رو به آخر کوئری اضافه کردم و ارور داد.
ممنون

moshaver71
یک شنبه 16 اسفند 1394, 02:41 صبح
ORDER BY `company`.`title`
این رو به آخر کوئری اضافه کنید

olampiad
یک شنبه 16 اسفند 1394, 04:08 صبح
عالی بود.
تشکر فراوان بابت راهنمایی
فقط ی سوال دیگه داشتم.
الآن اینجا از هر ردیف من دوتا میاره : یعنی هر ردیف من دوبار چاپ میشه.
من چطور میتونم کاری کنم که ردیف های تکراری حذف بشه.
ممنون

Unique
یک شنبه 16 اسفند 1394, 07:21 صبح
order by title ask رو به آخر کوئری اضافه کردم و ارور داد.
asc هست نه asc ، در ضمن به صورت پیش فرض asc هست و نیاز به نوشتنش نیست. اگه desc باشه باید بنویسین.

توصیه: سعی کنید نام جداول و فیلد ها را به شکلی انتخاب کنید که هم با معنی باشه و هم توی جدوال دیگه تکرار نشه تا نیاز به alias یا نوشتن اسم کامل جدول نباشه.


الآن اینجا از هر ردیف من دوتا میاره : یعنی هر ردیف من دوبار چاپ میشه.
مشکل شما از inner join هست که من اصلا نمیفهمم دارین چیکار میکنین ،‌ احتمالا شرکت هایی را میخواین که توی جدول company_type مقدار group_id برابر ۲۶ دارن:

select id,title from company left join company_type on id = company_id where group_id = 26

ولی باز هم عجیب و غریبه. اگه شرکت ها هر کدوم توی یک group هستند چرا فیلد group را توی جدول company نگذاشتین ؟