کمک در زمینه نوشتن یک دستور sql
با سلام
من در نوشتن دستور sql برنامه خودم به مشکل برخوردم مشکل من به صورت زیر است
من دو جدول دارم یکی از آنها به نامCOUNTRIESاست و دومی به نام Request .
حالا در جدول request دو فیلد دارم که به FK از جدول COUNTRIES است که یکی به عنوان کشور مبدا و دومی به عنوان کشور مقصد است(البته کد کشور ها رو نگه داری می کند) حالا می خوام یک Query بنویسم که بجای اینکه کد کشور مبدا و مقصد رو نشون بده نام اونها رو از جدول COUNTRIES بخونه و به جای کد نشون بده من اگه یک فیلد بود می تونستم بنویسم ولی حالا که دوفیلد مثل هم هستند به مشکل برخوردم ممنون میشم راهنمایی کنید
نقل قول: کمک در زمینه نوشتن یک دستور sql
سلام،
فقط نام ستون هاتون رو در کوئری قرار بدین
SELECT R.*, C1.countryName, C2.countryNam
FROM Request AS R
INNER JOIN
COUNTRIES AS C1
ON R.start = C1.countryPK
INNER JOIN
COUNTRIES AS C2
ON R.[end] = C2.countryPK;
نقل قول: کمک در زمینه نوشتن یک دستور sql
نقل قول:
نوشته شده توسط
msalim
سلام،
فقط نام ستون هاتون رو در کوئری قرار بدین
SELECT R.*, C1.countryName, C2.countryNam
FROM Request AS R
INNER JOIN
COUNTRIES AS C1
ON R.start = C1.countryPK
INNER JOIN
COUNTRIES AS C2
ON R.[end] = C2.countryPK;
دوست عزیز ممنون
اما میشه در مورد این کد های که نوشتید توضیح بدید
چون نمی خوام فقط Copy و Paste کنم
ممنون
نقل قول: کمک در زمینه نوشتن یک دستور sql
خیلی ساده است،
شما دو کلید خارجی در جدول Request دارین که به یک جدول یکسان ارجاع داده شده است. حالا همانطوری که گفتین نمیشه با تنها یک اتصال داده ها را برای هر دو ستون بدست بیاریم. در این مورد ناچاریم جدول Request را دوبار با یک جدول JOIN کنیم و در شرط اتصال یک بار با کشور مقصد اتصال دهیم و یک با برای شهر مبدا. و برای اینکه نام دو جدول یکسان تداخلی ایجاد نکنن از نام مستعار C1 و C2 استفاده شده است.
البته دو روش دیگر به غیر از Multiple Join (اتصال چنتایی) وجود داره که بهترین روش همین بود که نوشتم.