ورود

View Full Version : سوال درباره شرط در select



ali_ahr7
چهارشنبه 18 فروردین 1389, 09:59 صبح
سلام كد زير يه نگاه بندازيد:


SELECT dbo.tbmain.id
FROM dbo.tbfaliyat FULL OUTER JOIN
tbmain ON dbo.tbfaliyat.[id-faliyat] = dbo.tbmain.id
where id>3



سوال اينجاست:
چطور ميشه تمام id ها رو از جدول main انتخاب كرد حتي اگر شرط برقرار نباشد.
راستي من جستجو كردم ولي چيزي پيدا نكردم.با تشكر

محمد سلیم آبادی
چهارشنبه 18 فروردین 1389, 12:32 عصر
SELECT dbo.tbmain.id
FROM dbo.tbfaliyat RIGHT OUTER JOIN
tbmain ON dbo.tbfaliyat.[id-faliyat] = dbo.tbmain.id
where id>3

ali_ahr7
چهارشنبه 18 فروردین 1389, 19:00 عصر
جناب msalim سلام.متشكر از جوابتون ولي بازم اين جواب اوني نيست كه بايد باشه.ببينيد اين جواب فقط ركوردهايي رو پس ميده كه radif شون بيشتر از 3 هست در صورتي كه من ميخوام تمام ركورد ها رو از جدول main و فقط ركورد هايي كه اي ديشون بزرگتر از 3 هست رو از جدول faliyat برگردونه.حتي اگر به ازاي ركورد جدول main ،مقدار null رو بگزاره.در ضمن اچازه بديد يه كوئري واضح تر بنويسم.



SELECT dbo.tbmain.id,hovzefaliyat
FROM dbo.tbfaliyat right OUTER JOIN
tbmain ON dbo.tbfaliyat.[id-daliyat] = dbo.tbmain.id
where radif=0

محمد سلیم آبادی
چهارشنبه 18 فروردین 1389, 20:35 عصر
من منظورتون رو متوجه نمیشم. لازمه که یک نمونه از داده ها و خروجی مورد نظرتون رو پست کنید.

و به این نکات توجه کنید:
1 همیشه از نام مستعار برای جداولتون در نظر بگیرین. حداقل مزیتی که می تونه داشته باشه اینکه که سرعت نوشتن کوئری و خوانایی کوئری را افزایش می ده.
2 همیشه سعی کنید نام اشیاء بانکتان از جمله جداولتان را استاندارد تعریف کنید بطور مثال ستون id-daliyat غیر استاندارد که صحیحش میشه id_daliyat. (در اینترنت راجب ISO-11179 جستجو کنید) در این حالت دیگه نیازی به استفاده از قلاب نیست.



SELECT dbo.tbmain.id, hovzefaliyat
FROM dbo.tbfaliyat AS F
RIGHT OUTER JOIN
tbmain AS M
ON F.id_daliyat = M.id
where radif=0

ali_ahr7
پنج شنبه 19 فروردین 1389, 10:30 صبح
دوست خوبم از راهنماييتون متشكرم.من مشكلم حل شد.بازم ممنون