PostgreSQL連線(內連線)


在PostgreSQL中,有以下型別的連線:

  • 內連線(INNER JOIN)
  • 左外連線(LEFT OUTER JOIN)
  • 右外連線(RIGHT OUTER JOIN)
  • 全連線(FULL OUTER JOIN)
  • 跨連線(CROSS JOIN)

PostgreSQL INNER JOIN

PostgreSQL內部連線也被稱為連線或簡單連線。 這是最常見的連線型別。 此連線返回滿足連線條件的多個表中的所有行。

如下圖表示 -

語法:

SELECT table1.columns, table2.columns  
FROM table1  
INNER JOIN table2  
ON table1.common_filed = table2.common_field;

PostgreSQL INNER JOIN範例

表1: EMPLOYEES有以下資料 -

表2: DEPARTMENT有以下資料 -

建立另一個表「DEPARTMENT」並插入以下值。

-- Table: public.department

-- DROP TABLE public.department;

CREATE TABLE public.department
(
  id integer,
  dept text,
  fac_id integer
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.department
  OWNER TO postgres;

-- 插入資料
INSERT INTO department VALUES(1,'IT', 1);
INSERT INTO department VALUES(2,'Engineering', 2);
INSERT INTO department VALUES(3,'HR', 7);

現在 department 表的資料如下 -

執行以下查詢內連線兩個表:

SELECT EMPLOYEES.ID, EMPLOYEES.NAME, DEPARTMENT.DEPT  
FROM EMPLOYEES   
INNER JOIN DEPARTMENT  
ON EMPLOYEES.ID = DEPARTMENT.ID;

執行上面查詢語句,得到以下結果 -