2009-07-29 14 views
33

मैं किसी अन्य तालिका से डेटा के साथ mySql में एक तालिका को अपडेट करना चाहता हूं।उन्नत MySQL प्रश्न: किसी अन्य तालिका से जानकारी के साथ अद्यतन तालिका

मेरे पास दो टेबल "लोग" और "व्यवसाय" हैं। लोगों की तालिका व्यापारिक तालिका से "व्यापार_आईडी" नामक कॉलम से जुड़ा हुआ है।

आवश्यक तालिका संरचना, प्राथमिक कुंजी अभिनय किया है (तालिका: कॉलम): लोग: * business_id, * SORT_ORDER, ईमेल व्यापार: * business_id, ईमेल

मैं व्यापार तालिका ईमेल कॉलम अपडेट करना चाहते हैं लोगों की मेज से ईमेल के साथ, इस तरह कुछ (मुझे पता है कि मुझे कुछ याद आ रहा है):

UPDATE business b SET email = (SELECT email from People p where p.business_id = b.business_id AND sort_order = '1') WHERE b.email = ''; 

क्या यह समझ में आता है? क्या यह संभव है?

उत्तर

86
UPDATE business b, people p 
    SET b.email = p.email 
WHERE b.business_id = p.business_id 
    AND p.sort_order = '1' 
    AND b.email = '' 
+0

बहुत अच्छा लेकिन मेरी तरफ से यह 3 सेकेंड का समय लगता है – NineCattoRules

12

ध्यान दें, यदि SORT_ORDER एक INT है, तो उपयोग नहीं करते हैं '1' - 1 का उपयोग करें:

UPDATE business b 
JOIN People p 
ON p.business_id = b.business_id 
AND p.sort_order = '1' 
SET b.email = p.email 
WHERE b.email = ''; 
संबंधित मुद्दे