View Full Version : سوال: از دو جدول با Left Join عمل select را انجام دهيم؟
ali_abbasi22145
پنج شنبه 21 آبان 1388, 12:51 عصر
سلام
من با دلفي 7 و كامپوننت Ado خود دلفي به بانك SQL SERVER 2000 وصل مي شوم.
آيا مي توان به جاي دستورهاي SQL زير كه از يك جدول فيلدها را select مي كنند از دو جدول با Left Join عمل select را انجام دهيم؟
لطفا يك مثال بزنيد.
QryDate.Close;
QryDate.SQL.Clear;
QryDate.SQL.Add('select sicard,id,first_name,last_name,father_name,employe e_number,title,department,sex,date_of_birth_sh,exp ire_date_card_sh,expire_date_of_employment_sh,prin t_date_sh,card_format from cardtable ');
QryDate.ExecSQL;
QryDate.Open;
QryDate.insert;
QryDate.Cancel;
merced
پنج شنبه 21 آبان 1388, 21:51 عصر
شما هر دستور SQL معتبري رو ميتوني بنويسي . چرا امتحان نمي كني ؟
DataMaster
پنج شنبه 21 آبان 1388, 22:12 عصر
من توصیه می کنم اینجور ساختارها رو تبدیل به View در SQL بکنید و توی برنامه اونها رو نمابش بدید
لایه دیتابیس جدا از لایه اپلیکیشن میشه و برای هر تغییر کوچیکی تمام فرم رو زیر و رو نمی کنید و ...
benyaminrahimi
جمعه 22 آبان 1388, 20:18 عصر
من کلمه inner ya outter نمیبینم
سر کاریه؟
حسین شهریاری
شنبه 23 آبان 1388, 09:58 صبح
مشخص نیست شما از چه جوینی استفاده کردید!!!
ولی در جوابتون باید عرض کنم بله ممکنه.ولی باید خدمت شما عرض کنم این کاری که شما فرمودید زمانی به درد میخوره که قصد این باشه که خروجی ما مبتنی بر جدول سمت چپی باشه.
به عنوان مثال یه سیستم انبار را فرض کنید که توی یه جدول جمع کل وارده ها و توی جدول دیگه جمع کل صادره ها ذخیره شده باشد.شما وقتی میخاین موجودی فعلی را بدست بیارین کافیه این دو جدول را با هم جوین کنید و از حاصل تفریق دو فیلد جمع وارده و جمع صادره موجودی فعلی را بدست بیارین.ولی چند تا نکته را باید توجه کنید خروجی ما زمانی کاملا درست است که تمام کالاها هم ورودی داشته و هم خروجی.
ولی فکرشا بکنید اگه کالایی تازه وارد انبار شده باشه و هیچ خروجی نداشته باشه دیگه توی خروجی نمیاد.برای همین امر و حل این مشکل از Left OuterJoin استفاده میشه یعنی خروجی بر اساس جدول سمت چپی باشه.
حالا نمیدونم منظور شما از ذکر Left Join همین بود یا نه؟
ali_abbasi22145
یک شنبه 24 آبان 1388, 17:06 عصر
من توصیه می کنم اینجور ساختارها رو تبدیل به View در SQL بکنید و توی برنامه اونها رو نمابش بدید
لایه دیتابیس جدا از لایه اپلیکیشن میشه و برای هر تغییر کوچیکی تمام فرم رو زیر و رو نمی کنید و ...
سلام
من سالي 1بار يا 2 بار اين حالت را مي خواهم و اگر از View در SQL كنم هميشه اين View فعال است و سرعت برنامه مرا فكر مي كنم كاهش مي دهد!!
در اين صورت با Query در برنامه به نظرم استفاده كنم بهتر است.
لطفا نظريات خود را در مقايسه اين دو روش مطرح كنيد:
حسین شهریاری
دوشنبه 25 آبان 1388, 09:47 صبح
سلام
من سالي 1بار يا 2 بار اين حالت را مي خواهم و اگر از View در SQL كنم هميشه اين View فعال است و سرعت برنامه مرا فكر مي كنم كاهش مي دهد!!
در اين صورت با Query در برنامه به نظرم استفاده كنم بهتر است.
لطفا نظريات خود را در مقايسه اين دو روش مطرح كنيد:
سلام
دوست عزیز همانطور که از اسم اون مشخصه View فقط یه دید به کاربر میده و فقط یه کوئری هستش که تحت یک نام ذخیره میشه.و تا موقعی که اجرا نشه پیچ فضایی از حافظه را نمیگیره.یعنی اینکه View همیشه فعال نیست مگه اینکه شما اجرا و فعالش کنید!!
به نظر من وقتی یک View اجرا میشه مثل یک تیبل مجازی عمل میکنه.یعنی وقتی اجرا شد فضا میگیره و وقتی کارش تموم بشه فضای اشغال شده توسط اون به فضاهای خالی بازگردانده میشه.
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.