INNER JOIN, पठनीय एलियास और एक सटीक जॉइन शर्त की मदद से दो टेबल के डेटा को आपस में मिलाएँ।
इस पाठ को Kodokon में खोलेंएक वास्तविक डेटाबेस कभी भी सब कुछ एक ही टेबल में संग्रहीत नहीं करता: एक ओर ग्राहक, दूसरी ओर उनके ऑर्डर। इस मॉड्यूल का अभ्यास करने के लिए, अपने ब्राउज़र में sqliteonline.com खोलें (किसी इंस्टॉलेशन की ज़रूरत नहीं) या किसी टर्मिनल में sqlite3 टूल शुरू करें। सबसे पहले नीचे दी गई स्क्रिप्ट पेस्ट करें: यह इस पाठ में उपयोग होने वाली दो टेबल बनाती है।
CREATE TABLE customers (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
city TEXT
);
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
customer_id INTEGER NOT NULL,
amount REAL NOT NULL,
ordered_at TEXT NOT NULL
);
INSERT INTO customers (id, name, city) VALUES
(1, 'Alice', 'Lyon'),
(2, 'Karim', 'Paris'),
(3, 'Mina', 'Nantes');
INSERT INTO orders
(id, customer_id, amount, ordered_at)
VALUES
(1, 1, 49.90, '2026-06-01'),
(2, 1, 15.00, '2026-06-12'),
(3, 2, 120.50, '2026-06-15');INNER JOIN दो टेबल को पंक्ति-दर-पंक्ति एक मिलान शर्त के अनुसार जोड़ता है, जो ON के बाद लिखी जाती है। यहाँ, हर ऑर्डर उस ग्राहक से जुड़ा है जिसका id उसके customer_id के बराबर है। जिन पंक्तियों का कोई मिलान नहीं होता, वे परिणाम से हटा दी जाती हैं: मीना, जिसने कुछ भी ऑर्डर नहीं किया, दिखाई नहीं देती।
SELECT customers.name, orders.amount
FROM orders
INNER JOIN customers
ON customers.id = orders.customer_id;पूरे टेबल नाम बार-बार लिखना जल्दी ही अपठनीय हो जाता है। AS के साथ घोषित किया गया एक एलियास क्वेरी की अवधि के लिए टेबल का नाम बदल देता है। हमेशा अस्पष्ट कॉलम के आगे उपसर्ग लगाएँ: id दोनों टेबल में मौजूद है, इसलिए c.id या o.id लिखें, कभी अकेला id नहीं।
SELECT c.name, o.amount, o.ordered_at
FROM orders AS o
INNER JOIN customers AS c
ON c.id = o.customer_id
WHERE o.amount > 20
ORDER BY o.amount DESC;