Introduction
Use a subquery with the IN operator to find rows where a column's value matches any value from a list returned by another query.
Jump into concepts and practice - no test required
SELECT column1, column2 FROM table1 WHERE columnX IN (SELECT columnY FROM table2 WHERE condition);
SELECT name FROM employees WHERE department_id IN (SELECT id FROM departments WHERE location = 'New York');
SELECT product_name FROM products WHERE category_id IN (SELECT id FROM categories WHERE name = 'Beverages');
SELECT student_name FROM students WHERE student_id IN (SELECT student_id FROM enrollments WHERE course_id = 101);
CREATE TABLE departments (id INT, name VARCHAR(20), location VARCHAR(20)); INSERT INTO departments VALUES (1, 'Sales', 'New York'), (2, 'HR', 'Chicago'), (3, 'IT', 'New York'); CREATE TABLE employees (id INT, name VARCHAR(20), department_id INT); INSERT INTO employees VALUES (1, 'Alice', 1), (2, 'Bob', 2), (3, 'Charlie', 3), (4, 'Diana', 2); SELECT name FROM employees WHERE department_id IN (SELECT id FROM departments WHERE location = 'New York');
IN operator do when used with a subquery in SQL?Employees(emp_id, name, dept_id)Departments(dept_id, dept_name)SELECT name FROM Employees WHERE dept_id IN (SELECT dept_id FROM Departments WHERE dept_name = 'Sales');
SELECT emp_id FROM Employees WHERE dept_id IN SELECT dept_id FROM Departments;
Customers(customer_id, name)Orders(order_id, customer_id, product_id)Products(product_id, category)