PDA

View Full Version : انتخاب مقدار یک فیلد از 2 جدول مختلف بر اساس مقدار فیلدی دیگر



corona
یک شنبه 22 فروردین 1389, 17:49 عصر
با سلام. یک جدول دارم که دو تا فیلد به نامهای trigger type , trigger id هستش. حالا وقتی میخوام اطلاعات این جدول رو انتخاب کنم باید یک فیلد به نام window از یک جدول دیگه خونده بشه که حالا اگه trigger type = 1 بود فیلد window از توی حدول A و اگر triggertype = 2 بود فیلد window از توی جدول B باید خونده بشه. رابطه بین جدول اصلی و دو حدول A,B هم فیلد triiger id هستش که به طور مستقیم با دو حدول A,B رابطه نداره بلکه اگه triggertype =1 بود trigger id کلید حدول Aو اگر triiggertype =2 یود triggerid کلید جدول B هستش . سوال من اینه که همچین کوئری رو به چه صورت باید بنویسم.

محمد سلیم آبادی
یک شنبه 22 فروردین 1389, 18:03 عصر
سلام،
چرا نام ستون هایتان را استاندارد تعریف نکردین؟ با این نام ها مجبوریم از [] استفاده کنیم.

یک چیزی شبیه به این میتونه جواب باشه:
SELECT [trigger id], [trigger type], window = CASE WHEN [trigger type] = 1 THEN A.window
WHEN [trigger type] = 2 THEN B.window
END
FROM table_main AS M
LEFT OUTER JOIN A
ON M.[trigger id] = A.[trigger id]
LEFT OUTER JOIN B
ON M.[trigger id] = B.[trigger id];

corona
دوشنبه 23 فروردین 1389, 08:53 صبح
دوست عزيز ممنون از لطفت . نام ستون ها رو درست گرفتم اينجا با فاصله نوشتم براي خوانايي بيشتر . بازم ممنون

محمد سلیم آبادی
دوشنبه 23 فروردین 1389, 12:27 عصر
دوست عزيز ممنون از لطفت . نام ستون ها رو درست گرفتم اينجا با فاصله نوشتم براي خوانايي بيشتر . بازم ممنون

اگر واقعا نام ستون هایتان را استاندارد تعریف کرده باشین. خود به خود خوانا هستند و نیازی نبود با فاصله بنویسین!

مثلا trigger_id کاملا خوانایی داره و دو کلمه ی id و trigger از هم تفکیک شده هستند.