PDA

View Full Version : سوال در مورد عملگر نیم پیوند



hanann
دوشنبه 21 خرداد 1386, 01:18 صبح
سلام

عملگر نیم پیوند را کامل عملکردش را توضیح بدید.
تعریفی که من ازش دارم ای هست:
این عملگر مشابهه پیوند طبیعی است با این تفاوت که فقط ستون های جدول را بر میگرداند
من این را متوجه نمی شم که ستون های جدول را بر می گرداند یعنی چی؟

اگه لطف کنید با پاسخ مثال زیر توضیح بدید ممنون می شم.







با توجه به این سوال:
با توجه یه عملگر select اول تاپلی که شهرش برابر با تهران می باشد رااز جدول s بر میگرداند
و select دوم تاپلی را که Qty آن بزرگتر از 200 می باشد را از جدول sp بر می گرداند
جواب نبم پیوند چه می شه؟







S
city Sname S#
تهران فن آوران S1
تبریز ابران قطعه S2
تبریز پولادین S3






P

city جنس color P#
تهران آهن قرمز P1
تبریز مس سبز P2
شیراز برنج آبی P3
تهران آهن فرمز P4






SP
Qty S P#
300 P1 S1
200 P2 S1
400 P3 S1
300 P1 S2
400 P2 S2
200 P2 S3

Kamyar.Kimiyabeigi
دوشنبه 21 خرداد 1386, 07:47 صبح
منظورتون از نیم پیوند چیه؟ (میشه نام دستور رو بنویسید و ترجمش نکنید)

hanann
دوشنبه 21 خرداد 1386, 10:04 صبح
انگلسی این دستور semi jion است

hanann
دوشنبه 21 خرداد 1386, 10:09 صبح
در وافع سوال من اینه:
دو عملگر select ویک عملگر semi join باید روی این جداولی که در سوال هست اعمال بشه که من جواب آخر این سوال زا نیاز دارم
طبق این چیزی که من برداشت کردم تا این قسمت را تونستم پیش ببرم
دستور به این شکل است

select *
from s حاصل این عمل این میشه(تهران فن آوران S1 )

where city=tehran
و

select *
from sp
where Qty>200

حاصل این عمل هم این میشه
300 P1 S1
400 P3 S1
300 P1 S2
400 P2 S2

و حالا باید بین جواب این دو SEMI JOIN(عملگر نیم پیوند) اتفاق بیفته که حالا من نمیدنم جواب آخر چی میشه؟ چی را بر می گرداند ،طبق تعریفی که من ازش دارم باید ستون جدول را بر گردانه که من متوجه نمیشم جواب آخرش چی میشه؟

AminSobati
دوشنبه 21 خرداد 1386, 10:51 صبح
semi join در SQL Server 2005 بوسیله دستورات EXCEPT و INTERSECT انجام میشه. البته به این معنی نیست که 2000 امکانش رو نداره، بلکه بوسیه Subquery امکان پذیره. اگر Book Online برای 2005 رو دارید، به طور کامل با مثالش توضیح داده.