کلمه ناآشنا در یک mysql query

firebird

Member
این دستور رو نگاه کنید:
PHP:
    $sql="SELECT id, name, points FROM students su";

قشنگ کار میکنه. هیچ مشکلی هم نداره. فقط سوال اینجاست که اون کلمه su انتهای query چی هست؟ کسی میدونه؟
 

alireza82

Well-Known Member
اگراسم جدول بود که باید با یه , از هم جدا میشد تازه این سوای شرط ها و نوع کوئری میشد!
این دستور سلکت از دو تا جدول نیست!!
اما نکته جالب من تست کردمالبته برای جداول خودم این دستورات یه نتیجه رو برگردوند و البته بدون اینکه اروری بدن و همه یه نتیجه رو:shock:
SELECT id,user_id FROM avater su
SELECT id,user_id FROM avater aa
SELECT id,user_id FROM avater
همه یه نتیجه بدون تاثیری حالا اون چیه!!!!!
متاسفانه فاصله کلمات s و u و همچنین دستور su (super user) ای که در لینوکس وجود داره یکم کار رو برای نتیجه گیری اتفاقی بودن این کلمات در کوئری سخت میکنه!
ولی من میگم زائد هستند(نظر من این هست!!)
 
آخرین ویرایش:

Zanguei

Member
سلام دوست عزیز
برای اختصار نام جداول طولانی از این روش استفاده میشه و کلمه کوچکتری رو به جای نام طولانی جدول استفاده می کنند. در اصل باید به شکل زیر نوشته شود که البته به همان صورت هم قابل استفاده است.
کد:
[FONT=Courier New][COLOR=#dd0000]SELECT id, name, points FROM students AS su[/COLOR][/FONT]
یعنی از این به بعد من از نام su به جای نام students استفاده کن. البته در عمل تاثیر زیادی در کدی که شما نوشتید نداره اما در کوئری های پیچیده تر مثل زیر کاربرد بهتری داره:
کد:
SELECT su.id, su.name, ls.id, ls.name FROM students su INNER JOIN lessons ls ON (su.lesson = ls.id);
موفق باشید.
 

firebird

Member
نهایتاً دارم به این نتیجه میرسم که طبق گفته علیرضا زائد هست چون اولاً کدی که دارم ادیتش میکنم یه کار حرفه ای نیست و ممکنه طرف به هر دلیلی این دو کاراکتر رو گذاشته اونجا و چون خطا نداده برشون نداشته.
دلیل دوم اینه که هر چه سرچ کردم و تو فوروم ها پرسیدم (حتی فوروم رسمی mysql) جوابی نگرفتم. کد که کار میکنه. مشتری هم که ایشالله راضی خواهد بود. پس بیخیال دنیا ...
 

alireza82

Well-Known Member
نهایتاً دارم به این نتیجه میرسم که طبق گفته علیرضا زائد هست چون اولاً کدی که دارم ادیتش میکنم یه کار حرفه ای نیست و ممکنه طرف به هر دلیلی این دو کاراکتر رو گذاشته اونجا و چون خطا نداده برشون نداشته.
دلیل دوم اینه که هر چه سرچ کردم و تو فوروم ها پرسیدم (حتی فوروم رسمی mysql) جوابی نگرفتم. کد که کار میکنه. مشتری هم که ایشالله راضی خواهد بود. پس بیخیال دنیا ...

والا منم برات گشتم ! بعد این نتیجه رو گرفتم ، اول سرچ کردم چون هی دلم میخواست نتیجه بگیرم این su داره یه کار مدیریتی یا نرمال سازی انجام میده ولی تو انجمن ها چیزی گیر نیاوردم ، بعد تست کردم دیدم این جوریه گفتم زائد هست ارور نداده طرف درستش نکرده!!!
مطمئنن در غیر این صورت تو mysql حداقل یه چیزی راجبش بود!!:razz:
ورش دار از کدت، خودت و اذیت نکن:neutral::D
 

jhoseini

Member
فکر میکنم آقای Zanguei ج.اب درست رو گفتند، من هم دقیقا موافقم با ایشون کهاومدن su بدون فاصله بعد از اسم جدول برای نامگزاری موقت بوده
دوستان شما موافق نیستید؟
 

alireza82

Well-Known Member
فکر میکنم آقای Zanguei ج.اب درست رو گفتند، من هم دقیقا موافقم با ایشون کهاومدن su بدون فاصله بعد از اسم جدول برای نامگزاری موقت بوده
دوستان شما موافق نیستید؟

اگر As رو قبل از su داشت بله ، اما نداره!!!:sad:
 

dreamer

New Member
جواب جواد جان درسته ولی در برنامه مورد نظر شما اظافه است . کاربرد اصلی ان زمانی است که شما دو تا جدول را join میکنید که فیلدهای همنام دارند و کاربرد دیگر آن در select های تو در تو است
 

firebird

Member
جواب جواد جان درسته ولی در برنامه مورد نظر شما اظافه است . کاربرد اصلی ان زمانی است که شما دو تا جدول را join میکنید که فیلدهای همنام دارند و کاربرد دیگر آن در select های تو در تو است
همینطوره که شما میفرمایید. منتهی اگه JOIN ی در کار بود خودم متوجه میشدم و این همه سوال و جواب بی‌مورد بود. البته همونطور که گفتم سورس متوسطی بود و چنین چیزهای اضافی زیاد توش دیده میشد.
 

جدیدترین ارسال ها

بالا