Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle में जॉइन क्वेरी के साथ अपडेट करें

जब तक आपका SELECT सबक्वेरी एक ही पंक्ति देता है, आपका UPDATE कथन त्रुटि के साथ विफल होना चाहिए

ORA-01427: single-row subquery returns more than one row

आम तौर पर, मट्ठा आपके पास एक सहसंबंधित अद्यतन होता है, आपको कुछ शर्त की आवश्यकता होती है जो बाहरी तालिका में पंक्तियों से संबंधित होती है T1 यह सुनिश्चित करने के लिए कि सबक्वायरी एक पंक्ति लौटाती है, आंतरिक सबक्वायरी में पंक्तियों के लिए। यह आम तौर पर कुछ इस तरह दिखाई देगा

UPDATE table1 t1 SET (t1.col,t1.Output) = (
  SELECT t2.col, t3.Output + t2.col
  FROM tabl2 t3 
  LEFT JOIN table1 t2 ON t3.Join_Key = t2.Join_Key
  WHERE t2.col is not NULL
    AND t1.some_key = t2.some_key);

अंत में, यह UPDATE स्टेटमेंट हर पंक्ति को T1 . में अपडेट कर रहा है . क्या आपका यही इरादा है? या क्या आप केवल उन पंक्तियों को अपडेट करना चाहते हैं, जहां, उदाहरण के लिए, आपको अपनी सबक्वेरी में एक मिलान मिलता है?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL के लिए पार्सर

  2. जावा से Oracle में बल्क इंसर्ट

  3. Oracle प्रपत्रों में रिकॉर्ड समूह के साथ ट्री आइटम को आबाद करना

  4. Oracle 11G में INSERT SELECT स्टेटमेंट

  5. SQL डेवलपर में CSV…