📅  最后修改于: 2023-12-03 15:33:44.851000             🧑  作者: Mango
内连接(Inner Join)是 PostgresSQL 中最常用的连接类型之一。它将两个表中满足指定条件的行组合在一起,只返回两个表中都存在的行。这种连接通常用于处理多个表的查询,以便从多个表中获取所需的数据。
内连接的语法如下:
SELECT column(s)
FROM table1
INNER JOIN table2
ON table1.column = table2.column;
该语法有以下几个部分:
SELECT
:要查询的列名FROM
:要连接的表INNER JOIN
:指定连接类型为内连接ON
:指定连接两个表的条件我们来看一个使用内连接的例子,假设我们有两个表,一个是 customers
,另一个是 orders
。这两个表的结构如下:
customers
+----+-------------+-----------+
| id | name | email |
+----+-------------+-----------+
| 1 | John Smith | john@abc |
| 2 | Jane Doe | jane@abc |
| 3 | Bob Johnson | bob@abc |
+----+-------------+-----------+
orders
+----+-------------+-----------+
| id | customer_id | order_date|
+----+-------------+-----------+
| 1 | 1 | 2019-01-01|
| 2 | 1 | 2019-01-02|
| 3 | 2 | 2019-01-03|
+----+-------------+-----------+
我们想要查询所有客户的订单信息,查询结果应该如下:
+-------------+-----------+------------+
| name | email | order_date |
+-------------+-----------+------------+
| John Smith | john@abc | 2019-01-01 |
| John Smith | john@abc | 2019-01-02 |
| Jane Doe | jane@abc | 2019-01-03 |
+-------------+-----------+------------+
我们可以使用以下 SQL 语句来实现:
SELECT customers.name, customers.email, orders.order_date
FROM customers
INNER JOIN orders
ON customers.id = orders.customer_id;
这个 SQL 语句将 customers
表和 orders
表进行内连接,并且连接条件为 customers.id = orders.customer_id
,即将两个表中 id
和 customer_id
相等的行筛选出来。最后,我们用 SELECT
子句指定要查询的列名,即 customers.name
,customers.email
,和 orders.order_date
。
内连接是 PostgreSQL 中最常用的连接类型之一,它将两个表中满足指定条件的行组合在一起,只返回两个表中都存在的行。内连接通常用于多表查询。