自連接的用法--sql


自連接的用法--sql

自連接是連接的一種用法,但並不是連接的一種類型,因為他的本質是把一張表當成兩張表來使用。

mysql有時在信息查詢時需要進行對自身連接(自連接),所以我們需要為表定義別名。

-- 創建表
CREATE TABLE products
(
id  INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
price DOUBLE(6,2)
);
-- 添加數據 
INSERT INTO products(name,price)
VALUES
('蘋果',12),
('香蕉',15),
('梨子',13),
('桃子',14),
('橘子',11);

執行語句

-- 獲取可重排列 有相同元素構成的對
SELECT p1.name AS name1 ,p2.name AS name2 FROM products p1,products p2;
-- 也可寫為
SELECT p1.name as name1,p2.name as namem2 FROM products p1 JOIN products p2;
-- 執行結果里每一行(記錄)都是一個有序對。因為是可重排列,所以結果行數為 5^2 = 25 條數據

-- 可排除掉由相同元素構成的對
SELECT p1.name as name1 ,p2.name as name2 FROM products p1,products p2 WHERE p1.name <> p2.name;

--  元素順序的對進行去重
SELECT p1.name as name1 ,p2.name as name2 FROM products p1,products p2 WHERE p1.name < p2.name;

-- 組合
SELECT p1.name as name1,p2.name as name2,p3.name as name3,p4.name as name4,p5.name as name5 
FROM products p1,products p2,products p3,products p4,products p5
WHERE p1.name > p2.name
and p2.name > p3.name
and p3.name > p4.name
and p4.name > p5.name

圖例


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM