View Full Version : مشکل با join
css-man
پنج شنبه 17 مهر 1393, 15:40 عصر
دوستان من بین 3تا جدول join زدم
حالا توی واکشی الاعات به شکل خوردم فیلدهایی که اسامی مشترک دارن رو نمیتونم استفاده کنم
مثلا هم تو جدول اول فیلد name دارم هم تو جدول سوم
چطوراینارو تفکیک کنم اینم دستور join
SELECT * FROM `products` LEFT OUTER JOIN brands ON products.brand_id = brands.brand_id LEFT OUTER JOIN categories ON products.category_id = categories.cat_id WHERE products.id = 1235
MMSHFE
پنج شنبه 17 مهر 1393, 16:09 عصر
ساده ترین راه، استفاده مجزا از فیلدهاست. مثال:
SELECT `p`.`id` AS `p_id`,`p`.`name` AS `p_name`,`b`.`title` AS `b_title`,`c`.`name` AS `c_name`
FROM `products` `p`
LEFT OUTER JOIN `brands` `b` ON `p`.`brand_id`=`b`.`brand_id`
LEFT OUTER JOIN `categories` `c` ON `p`.`category_id`=`c`.`cat_id`
WHERE (`p`.`id`='1235');
css-man
پنج شنبه 17 مهر 1393, 16:38 عصر
مرسی از کمکتون
فکر میکردم نوعی از join باشه که اینا رو بتونه تفکیک کنه
از این به بعد اسم فیلدهاو رو اینجوری نمیزارم که داستان نشه
MMSHFE
پنج شنبه 17 مهر 1393, 16:44 عصر
خیر چنین Join خاصی وجود نداره. البته اگه تعداد فیلدها زیاد باشه یک راه دیگه هم هست که کوئری طولانی میشه ولی خودش اسم جدول رو اول هر فیلد اضافه میکنه و _ میگذاره بین اسم جدول و اسم فیلدها ولی همونطور که گفتم هم طولانیه و هم کمی کند میکنه چون از متغیر ست کردن توی کوئری و GROUP_CONCAT و INFORMATION_SCHEMA و... استفاده میکنه و راهی که تو پست قبلی گفتم از همه ساده تره.
css-man
پنج شنبه 17 مهر 1393, 16:59 عصر
چرا بخش where رو داخل پرانتز مینویسید؟
MMSHFE
پنج شنبه 17 مهر 1393, 18:42 عصر
بخاطر رعایت ساختار استاندارد Query و جلوگیری از خطاهای احتمالی.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.