Node.js MySQL जुड़ें
दो या दो से अधिक तालिकाओं में शामिल हों
आप जॉइन स्टेटमेंट का उपयोग करके, उनके बीच संबंधित कॉलम के आधार पर दो या दो से अधिक तालिकाओं से पंक्तियों को जोड़ सकते हैं।
विचार करें कि आपके पास "उपयोगकर्ता" तालिका और "उत्पाद" तालिका है:
उपयोगकर्ताओं
[
{ id: 1, name: 'John',
favorite_product: 154},
{ id:
2, name: 'Peter', favorite_product: 154},
{ id: 3, name: 'Amy',
favorite_product: 155},
{ id: 4, name: 'Hannah', favorite_product:},
{ id: 5, name: 'Michael',
favorite_product:}
]
उत्पादों
[
{ id: 154, name:
'Chocolate Heaven' },
{ id: 155, name: 'Tasty Lemons' },
{
id: 156, name: 'Vanilla Dreams' }
]
favorite_product
इन दो तालिकाओं को उपयोगकर्ता के क्षेत्र और उत्पादों के क्षेत्र
का उपयोग करके जोड़ा जा सकता है id
।
उदाहरण
दोनों तालिकाओं में एक मैच के साथ रिकॉर्ड का चयन करें:
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
var
sql = "SELECT users.name AS user, products.name AS favorite FROM users
JOIN products ON
users.favorite_product = products.id";
con.query(sql, function (err, result) {
if (err) throw err;
console.log(result);
});
});
नोट: आप जॉइन के बजाय इनर जॉइन का उपयोग कर सकते हैं। वे दोनों आपको एक ही परिणाम देंगे।
उपरोक्त कोड को "demo_db_join.js" नामक फ़ाइल में सहेजें और फ़ाइल चलाएँ:
"demo_db_join.js" चलाएँ
C:\Users\Your Name>node demo_db_join.js
जो आपको यह परिणाम देगा:
[
{ user: 'John', favorite:
'Chocolate Heaven' },
{ user: 'Peter', favorite: 'Chocolate Heaven' },
{
user: 'Amy', favorite: 'Tasty Lemons' }
]
जैसा कि आप ऊपर दिए गए परिणाम से देख सकते हैं, केवल दोनों तालिकाओं में मिलान वाले रिकॉर्ड ही लौटाए जाते हैं।
बाँया जोड़
यदि आप सभी उपयोगकर्ताओं को वापस करना चाहते हैं, भले ही उनका कोई पसंदीदा उत्पाद हो या नहीं, लेफ्ट जॉइन स्टेटमेंट का उपयोग करें:
उदाहरण
सभी उपयोगकर्ताओं और उनके पसंदीदा उत्पाद का चयन करें:
SELECT users.name AS user,
products.name AS favorite
FROM users
LEFT
JOIN products ON users.favorite_product = products.id
जो आपको यह परिणाम देगा:
[
{ user: 'John', favorite:
'Chocolate Heaven' },
{ user: 'Peter', favorite: 'Chocolate Heaven' },
{
user: 'Amy', favorite: 'Tasty Lemons' },
{
user: 'Hannah', favorite: null },
{ user: 'Michael', favorite: null }
]
राइट जॉइन
यदि आप सभी उत्पादों को वापस करना चाहते हैं, और जिन उपयोगकर्ताओं ने उन्हें अपने पसंदीदा के रूप में रखा है, भले ही कोई उपयोगकर्ता उनके पसंदीदा के रूप में नहीं है, तो राइट जॉइन स्टेटमेंट का उपयोग करें:
उदाहरण
उन सभी उत्पादों और उपयोगकर्ता का चयन करें, जिन्होंने उन्हें अपने पसंदीदा के रूप में चुना है:
SELECT users.name AS user,
products.name AS favorite
FROM users
RIGHT
JOIN products ON users.favorite_product = products.id
जो आपको यह परिणाम देगा:
[
{ user: 'John', favorite:
'Chocolate Heaven' },
{ user: 'Peter', favorite: 'Chocolate Heaven' },
{
user: 'Amy', favorite: 'Tasty Lemons' },
{
user: null, favorite: 'Vanilla Dreams' }
]
नोट: हन्ना और माइकल, जिनके पास कोई पसंदीदा उत्पाद नहीं है, परिणाम में शामिल नहीं हैं।