INNER JOIN
In this page:
SELECT columns
FROM table1
INNER JOIN table2
ON table1.column = table2.column;
एक INNER JOIN क्या है?
एक INNER JOIN दो tables से rows को एक related column के आधार पर match करता है, जैसे orders को उनके customers से match करना। यह सिर्फ उन rows को शामिल करता है जहाँ join condition दोनों tables में satisfy हो, इसलिए दोनों तरफ की unmatched rows पूरी तरह drop हो जाती हैं।
उदाहरण: What is an INNER JOIN?
CREATE TABLE customers (customer_id INT, name TEXT);
CREATE TABLE orders (order_id INT, customer_id INT);
INSERT INTO customers VALUES (1, 'Amit'), (2, 'Priya');
INSERT INTO orders VALUES (101, 1);
SELECT orders.order_id, customers.name
FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;
Explicit बनाम Implicit Join Syntax
Explicit joins match condition बताने वाले एक ON clause के साथ INNER JOIN keyword इस्तेमाल करते हैं। Implicit joins इसके बजाय एक comma और एक WHERE clause इस्तेमाल करते हैं। Explicit joins preferred हैं क्योंकि join logic किसी additional filtering से clearly separate होती है।
उदाहरण: Explicit vs Implicit Join Syntax
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);
-- Explicit
SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;
-- Implicit
SELECT * FROM orders, customers WHERE orders.customer_id = customers.customer_id;
Filtering के साथ INNER JOIN
join खुद उन्हें match कर लेने के बाद आप joined rows filter करने के लिए एक WHERE clause add कर सकते हैं। यह आपके matches को specific criteria के आधार पर narrow करता है, जैसे सिर्फ पिछले 30 दिनों में placed orders।
उदाहरण: INNER JOIN with Filtering
CREATE TABLE customers (customer_id INT, name TEXT);
CREATE TABLE orders (order_id INT, customer_id INT, order_date TEXT);
INSERT INTO customers VALUES (1, 'Amit');
INSERT INTO orders VALUES (101, 1, '2024-01-01'), (102, 1, '2024-06-01');
SELECT orders.order_id, customers.name
FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id
WHERE orders.order_date > '2024-03-01';
कई Tables Join करना
आप एक single query में तीन या ज़्यादा tables साथ join कर सकते हैं, जैसे orders को customers और products से connect करना। इसके लिए, अपनी query में कई INNER JOIN clauses chain करें, हर एक की अपनी ON condition के साथ।
उदाहरण: Joining Multiple Tables
CREATE TABLE customers (customer_id INT, name TEXT);
CREATE TABLE orders (order_id INT, customer_id INT, product_id INT);
CREATE TABLE products (product_id INT, product_name TEXT);
INSERT INTO customers VALUES (1, 'Amit');
INSERT INTO products VALUES (10, 'Keyboard');
INSERT INTO orders VALUES (101, 1, 10);
SELECT customers.name, products.product_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id
INNER JOIN products ON orders.product_id = products.product_id;
Aggregations के साथ INNER JOIN
Joins को GROUP BY के साथ combine करना आपको related tables में group statistics calculate करने देता है, जैसे प्रति customer total spend। join के relevant rows connect कर देने के बाद आप प्रति category sum totals या averages ढूँढ सकते हैं।
उदाहरण: INNER JOIN with Aggregations
CREATE TABLE customers (customer_id INT, name TEXT);
CREATE TABLE orders (order_id INT, customer_id INT, total INT);
INSERT INTO customers VALUES (1, 'Amit');
INSERT INTO orders VALUES (101, 1, 50), (102, 1, 30);
SELECT customers.name, SUM(orders.total) AS total_spend
FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id
GROUP BY customers.name;
ONcondition भूल जाना, ताकि join rows का हर combination return करे।- यह उम्मीद करना कि बिना matches वाली rows दिखेंगी, जबकि
INNER JOINउन्हें drop कर देता है। customer_idजैसे shared column को table name से qualify न करना, एकambiguous columnerror देते हुए।
Chapter Quiz — Complete all 10 topics to unlock
0/10 topics done
Complete these topics first: