Ngôn ngữ SQL - SELF JOIN

Self Join trong SQL

Lệnh Self Join trong SQL được sử dụng để nối một bảng với chính nó.

Cú pháp

Cú pháp cơ bản của lệnh Self Join trong SQL như sau:

SELECT a.column_name, b.column_name...
FROM table1 a, table1 b
WHERE a.common_field = b.common_field;

Ví dụ sử dụng lệnh Self Join trong SQL

Tạo bảng Customers:

CREATE TABLE CUSTOMERS (
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25),
   SALARY   DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

Insert dữ liệu vào bảng Customers:

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
    VALUES (1, 'Ha Anh', 32, 'Da Nang', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
    VALUES (2, 'Van Ha', 25, 'Ha Noi', 1500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
    VALUES (3, 'Vu Bang', 23, 'Vinh', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
    VALUES (4, 'Thu Minh', 25, 'Ha Noi', 6500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
    VALUES (5, 'Hai An', 27, 'Ha Noi', 8500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
    VALUES (6, 'Hoang', 22, 'Ha Noi', 4500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
    VALUES (7, 'Binh', 24, 'Ha Noi', 10000.00 );

Bây giờ, chúng ta hãy join bảng này với chính nó bằng cách sử dụng Self Join như sau:

SELECT  a.ID, b.NAME, a.SALARY
   FROM CUSTOMERS a, CUSTOMERS b
   WHERE a.SALARY < b.SALARY

Kết quả:

Ví dụ SELF JOIN trong SQL