نمایش نتایج 1 تا 13 از 13

نام تاپیک: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

  1. #1

    چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    این کوئری یک ساعتی می شه منو درگیر خودش کرده!

    حالت کلی کوئری به این صورته:
    SELECT o.id1, p.title 
    FROM ordder o
    LEFT JOIN product p
    ON o.id1=p.id
    WHERE (1=1 )
    ORDER BY o.id1 DESC LIMIT 0 , 30

    این کوئری بخاطر وجود LIMIT 0 , 30 اجرا نمی شه اما وقتی LIMIT 0 , 30 حذف می کنم کوئری بدون مشکل اجرا می شه
    SELECT o.id1, p.title
    FROM ordder o
    LEFT JOIN product p
    ON o.id1=p.id
    WHERE (1=1 ) ORDER BY o.id1

    مشکل چی می تونه باشه؟
    آخرین ویرایش به وسیله idocsidocs : چهارشنبه 03 مهر 1392 در 08:20 صبح

  2. #2

    نقل قول: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    اینو امتحان کنید:

    SELECT * FROM (SELECT `o`.`id1`, `p`.`title`
    FROM `order` AS `o`
    LEFT JOIN `product` AS `p`
    ON `o`.`id1`=`p`.`id`) AS `temp`
    ORDER BY `id1` DESC LIMIT 0 , 30

    ضمناً همیشه عادت کنید Query رو با رعایت کامل استانداردها بنویسید. مثلاً حذف کلمه AS ممکنه در بعضی سرورها و نسخه های MySQL مشکلی ایجاد نکنه و بعضی جاها مشکل بوجود بیاره. پس عادت کنید همیشه حالتی که همه جا اجرا میشه رو استفاده کنید.

  3. #3

    نقل قول: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    مهندس این کوئری یه LEFT JOIN ساده هست و اگه ORDER BY o.id1 DESC LIMIT 0 , 30 حذف بشه بدون مشکل اجرا می شه

    این ارور نمایش داده می شه:
    #1064 - You have an error in your SQL syntax;
    check the manual that corresponds to your MySQL server version for the right syntax to use near '30' at line 1

    دلیل این مشکل مشخص نیست؟

  4. #4

    نقل قول: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    یک Export از جدولهای order و product میگذارین تا تست کنم؟

  5. #5
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    دستورتون رو با چه برنامه ای میفرستید؟
    در یک session ه دیگه یا با یک برنامه دیگه تست کنید.فکر میکنم ادیتوری که دستور رو توش مینویسید ممکنه مشکل داشته باشه یا چند تا کارکتر نامرئی توش باشه.

  6. #6
    کاربر دائمی آواتار Reza1607
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    يه جايي تو مشهد
    پست
    969

    نقل قول: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    نقل قول نوشته شده توسط idocsidocs مشاهده تاپیک
    این کوئری یک ساعتی می شه منو درگیر خودش کرده!

    حالت کلی کوئری به این صورته:
    SELECT o.id1, p.title 
    FROM ordder o
    LEFT JOIN product p
    ON o.id1=p.id
    WHERE (1=1 )
    ORDER BY o.id1 DESC LIMIT 0 , 30

    این کوئری بخاطر وجود LIMIT 0 , 30 اجرا نمی شه اما وقتی LIMIT 0 , 30 حذف می کنم کوئری بدون مشکل اجرا می شه
    SELECT o.id1, p.title
    FROM ordder o
    LEFT JOIN product p
    ON o.id1=p.id
    WHERE (1=1 ) ORDER BY o.id1

    مشکل چی می تونه باشه؟

    با سلام
    به نظرم بعد از عدد 30 یک کاراکتر ناخواسته به کوئریت اضافه شده اون رو پاک کن شاید اصلاح بشه
    دلیل حرفم هم این هست که تو متن خطایی که گذاشتی بعد از 30 یک همچین  چیزی وجود داره

    البته این رو هم بگم که تو تستی که من کردم کوئری شما خطا داد ولی LIMIT رو پاک کردم و مجددا نوشتم درست شد

    نقل قول نوشته شده توسط idocsidocs مشاهده تاپیک
    مهندس این کوئری یه LEFT JOIN ساده هست و اگه ORDER BY o.id1 DESC LIMIT 0 , 30 حذف بشه بدون مشکل اجرا می شه

    این ارور نمایش داده می شه:
    #1064 - You have an error in your SQL syntax;
    check the manual that corresponds to your MySQL server version for the right syntax to use near '30' at line 1

    دلیل این مشکل مشخص نیست؟

  7. #7

    نقل قول: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    البته این رو هم بگم که تو تستی که من کردم کوئری شما خطا داد ولی LIMIT رو پاک کردم و مجددا نوشتم درست شد
    با توجه به اینکه تست کردید بنظرتون مشکل چیه؟
    آخرین ویرایش به وسیله idocsidocs : چهارشنبه 03 مهر 1392 در 11:56 صبح

  8. #8
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    مشکلتون دقیقا همون چیزیه که حدث میزدم.
    33 30 EF BB BF 0A

    این آخر دستوری هست که اجرا میکنید
    0A یعنی اینتر
    33 30 هم یعنی 30
    سه بایت اضافست

  9. #9
    کاربر دائمی آواتار Reza1607
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    يه جايي تو مشهد
    پست
    969

    نقل قول: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    نقل قول نوشته شده توسط idocsidocs مشاهده تاپیک
    با توجه به اینکه تست کردید بنظرتون مشکل چیه؟
    همون طور که دوستمون FastCode گفتن آخر کوئریتون چند کاراکتر اضافه به صورت مخفی هست اون رو پاک کنید درست میشه

  10. #10

    نقل قول: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    این آخر دستوری هست که اجرا میکنید
    0A یعنی اینتر
    33 30 هم یعنی 30
    سه بایت اضافست
    این کاراکترها به چه دلیل به کوئری اضافه می شن؟

  11. #11
    کاربر دائمی آواتار ابوذر محمودی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تربت حیدریه
    پست
    476

    نقل قول: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    من کد اول شما و کد آقای شهرکی رو که گذاشته بودین با notepad++ چک کردم ، انتهای کدتون یک کاراکتر اضافه س، که کدش معادل EFBBBF هست و کد دومی که بدون limit گذاشتین این کاراکترو نداره و راحت اجرا میشه.
    عکسشو میذارم ببینید ، اگه میشه از ; انتهای کوئری تا Limit رو پاک کنید ، دوباره تایپ کنین بعد تست کنین نتیجه رو بگین.


    اما اینکه چرا این کاراکتر اضافه شده جای سواله .
    ممکنه مثلاَ به خاطر یونیکد صفحه باشه؟؟
    یا اینکه ممکنه مربوط به ادیتور باشه؟؟
    یونیکدتون چیه و از چه ادیتوری استفاده میکنید؟
    آخرین ویرایش به وسیله ابوذر محمودی : چهارشنبه 03 مهر 1392 در 17:02 عصر

  12. #12

    نقل قول: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    عکسشو میذارم ببینید ، اگه میشه از ; انتهای کوئری تا Limit رو پاک کنید ، دوباره تایپ کنین بعد تست کنین نتیجه رو بگین.
    ارور برطرف شد!

    کپی پیست کردم و این مشکل برطرف شد اما مشکل اینجاست که این کدها رو قبلا استفاده می کردم و دلیل وجود این کاراکتر اضافه برام نامشخصه

  13. #13
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: چرا LIMIT 0 , 30 باعث اخلال در کار LEFT JOIN می شه؟

    نقل قول نوشته شده توسط idocsidocs مشاهده تاپیک
    ارور برطرف شد!

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

تاپیک های مشابه

  1. چرا منوهای لغزان در صفحه وب کار نمی‌کنند؟
    نوشته شده توسط forouzan در بخش طراحی وب (Web Design)
    پاسخ: 5
    آخرین پست: چهارشنبه 23 تیر 1389, 16:35 عصر
  2. سوال: علت خطای A network-related or instance-specific error occurred
    نوشته شده توسط zayens در بخش C#‎‎
    پاسخ: 21
    آخرین پست: شنبه 15 خرداد 1389, 11:30 صبح
  3. چرا بدون http بعضی form ها کار نمی کنه؟
    نوشته شده توسط raspotineiran در بخش PHP
    پاسخ: 2
    آخرین پست: چهارشنبه 19 فروردین 1388, 22:08 عصر
  4. چرا Hide در مورد TabPage ها کار نمیکنه؟
    نوشته شده توسط سار در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 17 خرداد 1384, 21:19 عصر

قوانین ایجاد تاپیک در تالار

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