PDA

View Full Version : سوال: راهنمایی در مورد ایجاد query



majidmt
چهارشنبه 06 شهریور 1387, 21:04 عصر
با عر ض سلام و خسته نباشید.
میخواستم از jon کردن دو تا جدول با مشخصات زیر یک query درست کنم لطفا منو را هنمایی کنید.
جدول اول(City):
id,name
جدول دوم(selCity):
id,city1,city2
در جدول دوم id شهرهای انتخاب شده از جدول city ذخیره میشود حالا میخوام query بسازم که از ترکیب دو جدول بدست میاد و به جای id موجود در جدول دوم نام شهر مورد نظر را نمایش بده.
مثال:
city :
name id
1 tehran
2 shiraz
3 esfehan
SelCity :
city1 city2 id
1 1 2
2 3 1
neeeded query :
city1 city2
shiraz tehran
tehran esfehan

رضا عربلو
چهارشنبه 06 شهریور 1387, 22:34 عصر
SELECT id , C1.Name As City1Name, C2.Name AS City2Name FROM selCity AS s
INNER JOIN City AS C1 On C1.Id=s.City1
INNER JOIN City AS C2 On C2.Id=s.City2

majidmt
پنج شنبه 07 شهریور 1387, 01:22 صبح
با تشکر از پاسخی که دادین.
ولی داخل selcity فیلد name وجود نداره و فقط id هر شهر متناسب با id که در city هست انتخاب میشه و نام هر شهر در جدول city با یه id مخصوص ذخیره شده.
با این تغیرات که در کد شما دادم در query که درست شد هر دو شهر را با یک نامنشون میده.


SELECT name As City1Name, name AS City2Name FROM city AS s
INNER JOIN selcity AS C1 On C1.Id=s.id
INNER JOIN selcity AS C2 On C2.Id=s.id

majidmt
پنج شنبه 07 شهریور 1387, 15:12 عصر
من همچنان منتظرم

majidmt
جمعه 08 شهریور 1387, 14:47 عصر
هیچ راهی نداره یعنی؟

salehzadeh58
یک شنبه 10 شهریور 1387, 22:54 عصر
سلام
اولا من هنوز نمیتوانم پست خصوصی برایتان داشته باشم
ثانیا باید عرض کنم در کوئری که دادم یک اشتباه کوچک است که کوئری درستش این است:
select sc1.id,c1.name as name1,
(select c2.name from selcity sc2 inner join city c2 on sc2.city2=c2.id AND sc2.id=sc1.id) as name2
from selcity sc1 inner join city c1 on sc1.city1=c1.id

این یک کوئری تو در تو است.فیلد اول کوئری یعنی همان name1 عبارت است از نام شهرهایی از جدول city که کدشان با مقدار فیلد city1 در جدول selcity برابر باشد.ساب کوئری دوم هم مفهوما همین است ولی برای شهر دوم و حاصلش فیلدی در نتیجه کوئری اصلی است به عنوان name2 .یعنی name2 عبارت است از نام شهرهایی از جدول شهر که کدش مساوی مقدار فیلد city2 در جدول selcity است.برای جدول شهر دو الیاس c1وc2 و برای جدول selcity دو الیاس SC1 وSC2 در نظر گرفتم.

salehzadeh58
یک شنبه 10 شهریور 1387, 23:02 عصر
سلام
ابتدا باید عرض کنم در کوئری که دادم یک اشتباه کوچک است که کوئری درستش این است:
select sc1.id,c1.name as name1,
(select c2.name from selcity sc2 inner join city c2 on sc2.city2=c2.id AND sc2.id=sc1.id) as name2
from selcity sc1 inner join city c1 on sc1.city1=c1.id

این یک کوئری تو در تو است.فیلد اول کوئری یعنی همان name1 عبارت است از نام شهرهایی از جدول city که کدشان با مقدار فیلد city1 در جدول selcity برابر باشد.ساب کوئری دوم هم مفهوما همین است ولی برای شهر دوم و حاصلش فیلدی در نتیجه کوئری اصلی است به عنوان name2 .یعنی name2 عبارت است از نام شهرهایی از جدول شهر که کدش مساوی مقدار فیلد city2 در جدول selcity است.برای جدول شهر دو الیاس c1وc2 و برای جدول selcity دو الیاس SC1 وSC2 در نظر گرفتم.

salehzadeh58
یک شنبه 10 شهریور 1387, 23:09 عصر
در ضمن بایدعرض کنم که جواب ارسالی آقای عربلو نیز درست است