PDA

View Full Version : برگرداندن چندین عدد از جدول



irpersian20
سه شنبه 03 اردیبهشت 1392, 22:30 عصر
سلام

میخواهم ID هایی که در ان جدول اسمشان ali است را برگردانم.
سپس به وسیله این ID هر چه خرید داشته برگردانم.
ارور دارم.چون دستور من یک عدد سطر برمیگرداند. چاره چیست؟
البته اگر یک ali داشته باشیم. چون یک عدد در نهایت برمیگردد مشکلی نیست. اما چون چندین ali4 در جدول دارم. ارور میده و طبیعی هست اما نمیدانم چی کار کنم

select * from Factor where Person =
(select P_ID from Person where name='ali4')

samani
سه شنبه 03 اردیبهشت 1392, 23:56 عصر
سلام

شما به جاي = بايد از IN استفاده كنيد

در ضمن استفاده از Join سريعتره

rasoul_par
چهارشنبه 04 اردیبهشت 1392, 08:27 صبح
وقتی از عملگر = برای برابری یک مقدار با یک کوئری استفاده می کنی باید خروجی کوئری اسکالر باشه، یعنی فقط یک مقدار یا عدد برگردونه!

irpersian20
چهارشنبه 04 اردیبهشت 1392, 09:19 صبح
سلام

شما به جاي = بايد از IN استفاده كنيد

در ضمن استفاده از Join سريعتره

سلام
با IN مشکلم حل شد.

mohsen.net
چهارشنبه 04 اردیبهشت 1392, 09:21 صبح
در ضمن استفاده از Join سريعتره

معمولا خیلی فرقی ندارن چون اگر plan یی که Sql می سازه را نگاه کنید هر دو یکی هستند

بحث استاندارد سازی و خوانایی کد بیشتر مطرح هست

irpersian20
چهارشنبه 04 اردیبهشت 1392, 10:03 صبح
میشه راه حل Join رو با همین مثال من بهم بگید .؟ ممنون

samani
چهارشنبه 04 اردیبهشت 1392, 12:41 عصر
معمولا خیلی فرقی ندارن چون اگر plan یی که Sql می سازه را نگاه کنید هر دو یکی هستند

چون توي يك نسخه از SQLServer پلان شبيه هم ميشه دليل بر درست بودن آن در همه نسخ نيست و در ضمن تفاوت سرعت تو ركوردهاي چند 100هزارتايي و چند ميليوني به وضوح ديده ميشه


میشه راه حل Join رو با همین مثال من بهم بگید .؟ ممنون

SELECT Factor.* FROM Factor INNER JOIN Person
ON Factor.Person = Person.P_ID
WHERE Person.name = 'ali4'