Как вернуть строки, у которых есть совпадающие значения в обоих таблицах в SQL?
Для возврата строк, у которых есть совпадающие значения в обоих таблицах, можно использовать оператор JOIN. Существует несколько типов JOIN, но для этой задачи наиболее подходящим будет INNER JOIN.
Пример:
У нас есть две таблицы: orders и customers. Обе таблицы имеют столбец customer_id, который является общим для обеих таблиц.
Таблица orders:
order_id | customer_id | order_date |
---|---|---|
1 | 101 | 2021-01-01 |
2 | 102 | 2021-01-02 |
3 | 103 | 2021-01-03 |
Таблица customers:
customer_id | customer_name | city |
---|---|---|
101 | John Smith | New York |
102 | Jane Doe | San Diego |
104 | Bob Johnson | Chicago |
Чтобы вернуть строки, у которых есть совпадающие значения в обеих таблицах, мы можем использовать следующий запрос:
SELECT *
FROM orders
INNER JOIN customers
ON orders.customer_id = customers.customer_id;
Результат:
order_id | customer_id | order_date | customer_name | city |
---|---|---|---|---|
1 | 101 | 2021-01-01 | John Smith | New York |
2 | 102 | 2021-01-02 | Jane Doe | San Diego |