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

नोड js में नेस्टेड क्वेरी mysql का उपयोग कर

मुझे आपके कोड में दो समस्याएं दिखाई दे रही हैं:

  • आप कॉल कर रहे हैं connection.end() समकालिक रूप से, लेकिन आपके प्रश्न एसिंक्रोनस प्रवाह में चलते हैं। आपको connection.end() पर कॉल करना होगा केवल तभी जब आपने दूसरी क्वेरी पूरी कर ली हो।
  • आप एक नियमित for . का उपयोग कर रहे हैं एसिंक्रोनस कॉल चलाने के लिए लूप (आप लूप से बाहर हैं)।

आप जो करने की कोशिश कर रहे हैं उसे पूरा करने के लिए, आपको उन असीमित परिदृश्यों पर विचार करना होगा। आप promises का उपयोग कर सकते हैं या मॉड्यूल जैसे async , जो आपको अतुल्यकालिक प्रवाह से निपटने के लिए कई तरीके प्रदान करता है, जैसे async.each() :

connection.query(queryString, function(err, rows, fields) {
    if (err) throw err;

    async.each(rows, function (row, callback) {
        console.log('Product Name: ', row.product_name);
        var emp_query = 'SELECT * FROM tbl_employer';
        connection.query(queryString, function(emp_err, emp_rows, emp_fields) {
            if (emp_err) callback(emp_err);
            for (var e in emp_rows) {
                console.log('Employer Name: ', emp_rows[e].company_name);
            }
            callback();
        }); 
    });
    }, function (err) {
        connection.end();
    }
});

अब यह गारंटी देगा कि connection.end() आपके सभी प्रश्नों के समाप्त होने पर ही कॉल किया जाएगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हाइबरनेट से डुप्लिकेट प्रविष्टि त्रुटियां प्राप्त करना, MySQL को दोष देना है?

  2. RAND () पंक्तियों को ORDER BY RAND () के बिना केवल एक प्रश्न में लाया जा रहा है

  3. सबक्वायरी में कोई भी कॉलम नहीं होने के कारण क्वेरी विफल क्यों नहीं होती है?

  4. इस तरह 2 टेबल का चयन कैसे करें

  5. AWS RDS पर MySQL डेटाबेस और Oracle डेटाबेस के साथ JDeveloper का उपयोग करना, भाग 2