Introduction
Non-equi joins help you combine data from two tables using conditions other than just equal matches. This lets you find related data based on ranges or inequalities.
Jump into concepts and practice - no test required
SELECT columns FROM table1 JOIN table2 ON table1.column operator table2.column;
SELECT e.name, s.grade FROM employees e JOIN salary_grades s ON e.salary BETWEEN s.min_salary AND s.max_salary;
SELECT p.product_name, d.discount FROM products p JOIN discounts d ON p.price > d.min_price AND p.price < d.max_price;
SELECT o.order_id, c.customer_name FROM orders o JOIN customers c ON o.order_date >= c.signup_date;
CREATE TABLE employees ( id INT, name VARCHAR(50), salary INT ); CREATE TABLE salary_grades ( grade CHAR(1), min_salary INT, max_salary INT ); INSERT INTO employees VALUES (1, 'Alice', 4500), (2, 'Bob', 3200), (3, 'Charlie', 6000); INSERT INTO salary_grades VALUES ('A', 3000, 3999), ('B', 4000, 4999), ('C', 5000, 6999); SELECT e.name, e.salary, s.grade FROM employees e JOIN salary_grades s ON e.salary BETWEEN s.min_salary AND s.max_salary ORDER BY e.id;
non-equi join in SQL?Products(product_id, price) and Discounts(min_price, max_price, discount_rate), what does this query return?SELECT p.product_id, d.discount_rate FROM Products p JOIN Discounts d ON p.price >= d.min_price AND p.price < d.max_price;
SELECT e.name, s.salary_grade FROM Employees e JOIN SalaryGrades s ON e.salary => s.min_salary AND e.salary <= s.max_salary;
Scores(student_id, score) and a table Grades(grade, min_score, max_score). Write a query to assign each student their grade based on their score using a non-equi join.