hamid1
دوشنبه 23 آذر 1388, 03:16 صبح
من یک نرم افزار تهیه کردم که که دقیقا کاری را که صفحه ایجاد view در sql انجام می دهد را انجام می دهد به این صورت که جداول مورد نظر را add کرده و relation های آنها را ایجاد کرده و تمامی قسمتهای دستور select ازجمله order by و group by و ... را نیز دارد . همانطور که می دانید در sql زمانی که وارد صفحه ایجاد view می شویم در قسمت کد sql عبارت زیر موجود است : select
from
که زمانی که ما جدول ها را در پنجره بالایی آن add می کنیم خود sql با توجه به جدول ها و رابطه های بین آنها query را تکمیل می کند . مثلا اگر ما سه جدول t1,t2,t3 را add کنیم که t1 و t2 با هم relation داشته باشند عبارت زیر ایجاد می شود :
select * from t1 inner join t2 on f1=f2 cross join t3
f1,f2 نام فیلدهایی است که رابطه جداول t1 و t2 بر اساس آنها است .
زمانی که تعداد جداول بیشتری را add می کنیم که ممکن است هر کدام با دیگری relation داشته باشد عبارت sql ایجاد شده شامل inner join ها و crooss join های تو در تو و زیادی است . حال سوال من این است که این عبارت با چه الگوریتمی ایجاد می شود ؟ آیا کسی مطلع است که من را راهنمایی کند که من هم از آن الگوریتم استفاده کنم ؟ خواهش می کنم که کمکم کنید .
زمانی که تعداد جداول کم است و یا اینکه تعداد relation ها کم است مشکلی ندارم و inner join ها و cross join ها را می فهمم و زمانی که تعداد جداول و relation های بین آنها زیاد می شود و طبعا تعداد inner join و cross jion زیاد می شود نمی دانم با چه الگوریتمی آن را در برنامه ام پیاده کنم تا دقیقا همان query را که sql میدهد برنامه من نیز ایجاد کند ؟
from
که زمانی که ما جدول ها را در پنجره بالایی آن add می کنیم خود sql با توجه به جدول ها و رابطه های بین آنها query را تکمیل می کند . مثلا اگر ما سه جدول t1,t2,t3 را add کنیم که t1 و t2 با هم relation داشته باشند عبارت زیر ایجاد می شود :
select * from t1 inner join t2 on f1=f2 cross join t3
f1,f2 نام فیلدهایی است که رابطه جداول t1 و t2 بر اساس آنها است .
زمانی که تعداد جداول بیشتری را add می کنیم که ممکن است هر کدام با دیگری relation داشته باشد عبارت sql ایجاد شده شامل inner join ها و crooss join های تو در تو و زیادی است . حال سوال من این است که این عبارت با چه الگوریتمی ایجاد می شود ؟ آیا کسی مطلع است که من را راهنمایی کند که من هم از آن الگوریتم استفاده کنم ؟ خواهش می کنم که کمکم کنید .
زمانی که تعداد جداول کم است و یا اینکه تعداد relation ها کم است مشکلی ندارم و inner join ها و cross join ها را می فهمم و زمانی که تعداد جداول و relation های بین آنها زیاد می شود و طبعا تعداد inner join و cross jion زیاد می شود نمی دانم با چه الگوریتمی آن را در برنامه ام پیاده کنم تا دقیقا همان query را که sql میدهد برنامه من نیز ایجاد کند ؟