2012-07-16 14 views
7

के भीतर एकाधिक तालिकाओं में शामिल होना मैं अद्यतन विवरण में तीन तालिकाओं में शामिल होने का प्रयास कर रहा हूं, लेकिन अब तक मैं असफल रहा हूं। मैं जानता हूँ कि इस क्वेरी दो तालिकाओं में शामिल होने के लिए काम करता है:एक अद्यतन कथन

update table 1 
set x = X * Y 
from table 1 as t1 join table 2 as t2 join table3 as t3 
on t1.column1 = t2.column1 and t2.cloumn2 = t3.column1 

काम नहीं करेगा:

update table 1 
set x = X * Y 
from table 1 as t1 join table 2 as t2 on t1.column1 = t2.column1 

हालांकि, मेरे मामले में, मैं तीन टेबल तो शामिल होना होगा।

update table 1 
set x = X * Y 
from table 1, table 2, table 3 
where column1 = column2 and column2= column3 

किसी को भी यह पूरा करने के लिए एक विधि का पता है: मैं भी निम्न क्वेरी की कोशिश की?

+1

क्या तालिका Y से आता है:

तो यहाँ मेरा प्रस्ताव है, हालांकि यह पूरी तरह से अर्हता प्राप्त करने के अद्यतन किया जाना चाहिए जहां y से आता है? –

उत्तर

14

आप निश्चित रूप से table, table, table वाक्यविन्यास का उपयोग नहीं करना चाहते हैं; here's why। आपके मध्य कोड नमूने के लिए, सिंटैक्स में SELECT के लिए लगभग समान नियमों का पालन करें क्योंकि यह UPDATE के लिए करता है। JOIN t2 JOIN t3 ON ... मान्य नहीं है, लेकिन JOIN t2 ON ... JOIN t3 ON मान्य है।

UPDATE t1 
    SET x = x * y -- should either be t2.y or t3.y, not just y 
    FROM dbo.table1 AS t1 
    INNER JOIN table2 AS t2 
    ON t1.column1 = t2.column1 
    INNER JOIN table3 AS t3 
    ON t2.column2 = t3.column1; 
+0

धन्यवाद, यह मेरे लिए किया था। – Rick

संबंधित मुद्दे