RIGHT JOIN
In this page:
SELECT columns
FROM table1
RIGHT JOIN table2
ON table1.column = table2.column;
एक RIGHT JOIN क्या है?
एक RIGHT JOIN right table की सारी rows रखता है चाहे left पर एक match exist करे या नहीं। यह उन्हें possible होने पर left table की rows से match करता है। अगर कोई match नहीं है, left side NULL return करता है, mirror करते हुए कि LEFT JOIN right side को कैसे treat करता है।
उदाहरण: What is a RIGHT JOIN?
CREATE TABLE customers (customer_id INT, name TEXT);
CREATE TABLE orders (order_id INT, customer_id INT);
INSERT INTO customers VALUES (1, 'Amit');
INSERT INTO orders VALUES (101, 1), (102, 2);
SELECT customers.name, orders.order_id
FROM customers RIGHT JOIN orders ON customers.customer_id = orders.customer_id;
RIGHT JOIN बनाम LEFT JOIN Equivalence
हर RIGHT JOIN को एक equivalent LEFT JOIN की तरह फिर से लिखा जा सकता है। आप बस अपनी query में table order swap कर देते हैं। ज़्यादातर style guides consistency के लिए हर जगह LEFT JOIN पर टिके रहने को prefer करती हैं, क्योंकि RIGHT JOIN कहीं कम इस्तेमाल होता है और readers को confuse कर सकता है।
उदाहरण: RIGHT JOIN vs LEFT JOIN Equivalence
CREATE TABLE customers (customer_id INT, name TEXT);
CREATE TABLE orders (order_id INT, customer_id INT);
INSERT INTO customers VALUES (1, 'Amit');
INSERT INTO orders VALUES (101, 1);
-- RIGHT JOIN
SELECT customers.name FROM customers RIGHT JOIN orders ON customers.customer_id = orders.customer_id;
-- Equivalent LEFT JOIN (tables swapped)
SELECT customers.name FROM orders LEFT JOIN customers ON customers.customer_id = orders.customer_id;
RIGHT JOIN से Orphans Identify करना
आप right table में ऐसी rows ढूँढ सकते हैं जिनके left side पर कोई matching records नहीं, जैसे वे products जो कभी order नहीं हुए। इसके लिए, join के बाद left-side NULLs check करें, LEFT JOIN orphan-finding pattern की mirror image।
उदाहरण: Identifying Orphans with RIGHT JOIN
CREATE TABLE products (product_id INT, name TEXT);
CREATE TABLE orders (order_id INT, product_id INT);
INSERT INTO products VALUES (1, 'Keyboard'), (2, 'Mouse');
INSERT INTO orders VALUES (101, 1);
SELECT products.name
FROM orders RIGHT JOIN products ON orders.product_id = products.product_id
WHERE orders.order_id IS NULL;
कई Tables Right Join करना
आप एक साथ कई tables से information इकट्ठा करने के लिए कई RIGHT JOIN statements chain कर सकते हैं। यह rightmost table के records preserve करते हुए information इकट्ठा करता है, यह ensure करते हुए कि उस final table से कुछ भी न छूटे।
उदाहरण: Right Joining Multiple Tables
CREATE TABLE categories (category_id INT, name TEXT);
CREATE TABLE products (product_id INT, category_id INT, name TEXT);
CREATE TABLE orders (order_id INT, product_id INT);
INSERT INTO categories VALUES (1, 'Electronics');
INSERT INTO products VALUES (10, 1, 'Keyboard');
INSERT INTO orders VALUES (101, 10);
SELECT categories.name, products.name, orders.order_id
FROM orders
RIGHT JOIN products ON orders.product_id = products.product_id
RIGHT JOIN categories ON products.category_id = categories.category_id;
RIGHT JOIN Aggregate Computations
एक RIGHT JOIN को aggregation के साथ combine करना आपको unmatched rows के लिए zeroes सहित total figures display करने देता है, जैसे कभी नहीं बिके products के लिए भी हर product का sales count दिखाना।
उदाहरण: RIGHT JOIN Aggregate Computations
CREATE TABLE products (product_id INT, name TEXT);
CREATE TABLE orders (order_id INT, product_id INT);
INSERT INTO products VALUES (1, 'Keyboard'), (2, 'Mouse');
INSERT INTO orders VALUES (101, 1);
SELECT products.name, COUNT(orders.order_id) AS sales_count
FROM orders RIGHT JOIN products ON orders.product_id = products.product_id
GROUP BY products.name;
- कौन सी table preserve होती है इसे mix up करना, जबकि
RIGHT JOINright पर table की हर row रखता है। - एक
RIGHT JOINलिखना जहाँ एकLEFT JOINclearer होता, और table order को confuse करना। WHEREमें left table filter करना, जो बिना match वाली rows हटा देता है।
Chapter Quiz — Complete all 10 topics to unlock
0/10 topics done
Complete these topics first: