تالار گفتمان مانشت
توضیح در مورد یک کوئری - نسخه‌ی قابل چاپ

توضیح در مورد یک کوئری - H-Arshad - 14 فروردین ۱۳۹۳ ۰۷:۴۸ ب.ظ

سلام
عزیزن این کوئری چطور عمل میکنه؟ ترتیب اجرا شدن چطوری هست؟ اول همه رو ضرب دکارتی میکنه؟
کد:
select sname
from spj,s,p
where name='آرماتور'
and
p.p#=SPJ.p#
and
SPJ.s#=S.s#


RE: توضی در مورد یک کوئری - Morris - 14 فروردین ۱۳۹۳ ۰۹:۱۸ ب.ظ

سلام بر شما.
حدس میزنم کد را به درستی تایپ نکرده اید.
برای پاسخ به چنین سوالاتی باید نام روابط و صفات هر کدام (به قول معروف جداول) را معرفی کنید.

RE: توضی در مورد یک کوئری - H-Arshad - 14 فروردین ۱۳۹۳ ۰۹:۲۷ ب.ظ

(۱۴ فروردین ۱۳۹۳ ۰۹:۱۸ ب.ظ)Morris نوشته شده توسط:  سلام بر شما.
حدس میزنم کد را به درستی تایپ نکرده اید.
برای پاسخ به چنین سوالاتی باید نام روابط و صفات هر کدام (به قول معروف جداول) را معرفی کنید.

سلام
کد:
S(s#,sname,city)
p(p#,pname,color)
j(j#,jname,city)
SPJ(S#,p#,j#,qty)

امکان داره اینم بفرمائید؟ یعنی چطور اجرا میشه؟ اول کدام و به چه صورت؟
کد:
select sname
from s
where exists
(select * from p where pname='آرماتور'
and
exists (select *
where spj.s#=S.s#
and
spj.p#=p.p#)


RE: توضی در مورد یک کوئری - Morris - 15 فروردین ۱۳۹۳ ۰۷:۵۱ ق.ظ

سوال شما بسیار مبهم است. دو query که آورده اید هیچیک با روابط مطرح شده نمی خواند و یکی اصلا خطای نحوی دارد.

RE: توضی در مورد یک کوئری - Morris - 15 فروردین ۱۳۹۳ ۱۲:۰۲ ب.ظ

(۱۵ فروردین ۱۳۹۳ ۱۰:۳۴ ق.ظ)H-Arshad نوشته شده توسط:  
(15 فروردین ۱۳۹۳ ۰۷:۵۱ ق.ظ)Morris نوشته شده توسط:  سوال شما بسیار مبهم است. دو query که آورده اید هیچیک با روابط مطرح شده نمی خواند و یکی اصلا خطای نحوی دارد.

سلام
از کتاب ساهاکیان . به نظرم در کوپری مشکلی نباشد.کدام قسمت منظورتان هست؟




مثلا در اولی "p." چیه ؟
کد:
from sj,s,.p

در رابطه ها "SPJ.p" نداریم. "SPJ" چیست ؟ آیا یک رابطه است ؟ اگر رابطه است چرا در رابطه ها وجود ندارد ؟

RE: توضی در مورد یک کوئری - Morris - 15 فروردین ۱۳۹۳ ۱۲:۵۱ ب.ظ

(۱۵ فروردین ۱۳۹۳ ۱۲:۳۶ ب.ظ)H-Arshad نوشته شده توسط:  ببخشید مشکل از من هست.

SPJ هست جدول اسمش نه SP


اون "p." چیه ؟

RE: توضیح در مورد یک کوئری - Morris - 15 فروردین ۱۳۹۳ ۰۱:۳۹ ب.ظ

۱/ در Query اول آیا منظور از sj در این خط همان SPJ است ؟
کد:
from sj,s,p
۲/ در Query دوم آیا منظور از pname در این خط همان name است ؟
کد:
(select * from p where pname='آرماتور'


RE: توضیح در مورد یک کوئری - hosshah - 18 فروردین ۱۳۹۳ ۰۹:۱۷ ب.ظ

سلام دوست عزیز من میگم اینطوریه که اول JOIN ها رو انجام میده و جدول جدیدی به دست میاد که شرط های دستور JOIN رو داره و بعد از اونها رکوردهایی استخراج میشه که فیلد مورد نظرشون آرماتور باشه