PostgreSQL JOIN 連線
JOIN 連線
JOIN
子句用於根據它們之間的相關列,將來自兩個或多個表的行合併在一起。
讓我們看看 products
表中的一些選定記錄
product_id | product_name | category_id
------------+----------------+-------------
33 | Geitost | 4
34 | Sasquatch Ale | 1
35 | Steeleye Stout | 1
36 | Inlagd Sill | 8
然後,看看 categories
表中的一些選定記錄
category_id | category_name
-------------+----------------
1 | Beverages
2 | Condiments
3 | Confections
4 | Dairy Products
請注意,products
表中的 category_id
列引用了 categories
表中的 category_id
。上面兩個表之間的關係是 category_id
列。
然後,我們可以建立以下 SQL 語句(使用 JOIN 連線),它選擇在兩個表中都有匹配值的記錄
示例
使用 category_id
列將 products
連線到 categories
SELECT product_id, product_name, category_name
FROM products
INNER JOIN categories ON products.category_id = categories.category_id;
執行示例 »
如果我們從上面 products
表中提取相同的選定內容,我們將得到這個結果
結果
product_id | product_name | category_name
------------+----------------+----------------
33 | Geitost | Dairy Products
34 | Sasquatch Ale | Beverages
35 | Steeleye Stout | Beverages
36 | Inlagd Sill | Seafood
不同型別的 JOIN 連線
以下是 PostgreSQL 中不同型別的 JOIN 連線
INNER JOIN
: 返回在兩個表中都有匹配值的記錄LEFT JOIN
: 返回左表中的所有記錄,以及右表中匹配的記錄RIGHT JOIN
: 返回右表中的所有記錄,以及左表中匹配的記錄FULL JOIN
: 當左表或右表中存在匹配時,返回所有記錄