2011-04-16 16 views
5

मैं डेटाबेस में दो टेबल का उपयोग कर रहा हूं। पहली तालिका इस प्रकार है:MySQL अपडेट मान

id | msg_id |  user | date 
------------------------------------------------- 
    01 | 122  | user 1 | 2011-04-01 
    02 | 453  | user 2 | 2011-04-03 
    03 | 124  | user 3 | 2011-04-05 

और दूसरा तालिका इस प्रकार है:

 id | msg_id |  status | 
    ---------------------------------------- 
     01 |  0  |  1  | 
     02 |  0  |  1  | 
     03 |  124 |  1  | 

मैं में "0" मूल्य वाली सभी पंक्तियों ("msg_id" कॉलम) को अपडेट करना चाहते पहली तालिका से msg_id रिकॉर्ड्स पर आधारित दूसरी तालिका। क्या यह एक प्रश्न के साथ ऐसा करना संभव है?

परिणाम दिखना चाहिए:

 id | msg_id |  status | 
    ---------------------------------------- 
     01 | 122  |  1  | 
     02 | 453  |  1  | 
     03 | 124  |  1  | 

उत्तर

1
UPDATE table1 AS t1, table2 AS t2 
SET t2.msg_id=t1.msg_id 
WHERE t1.id = t2.id and t2.msg_id = 0; 
0
UPDATE secondTable 
SET msg_id = (SELECT msg_id FROM firstTable WHERE firstTable.msg_id = secondTable.msg_id) 
WHERE msg_id = 0; 
0
UPDATE table2 t2 
JOIN table1 t1 
ON  t2.id = t2.id 
SET  t2.msg_id = t1.msg_id 
WHERE t2.msg_id = 0 
0

कोशिश

UPDATE table2 t2 SET msg_id = (SELECT msg_id 
    FROM table1 t1 where t2.id = t1.id AND t2.msg_id=0) 
0
UPDATE secondTable as st , firstTable as ft set st.msg_id = ft. msg_id WHERE ft.id = st.id 
and st.msg_id = 0; 
संबंधित मुद्दे