MySQL 多表查詢

多表查詢的分類

  • 內鏈接
    • 隱式內鏈接
    • 顯式內鏈接
  • 外鏈接
    • 左外鏈接
    • 右外鏈接

 

 

內鏈接

用左邊表的記錄去匹配右邊表的記錄,若是符合條件的則顯示。如:從表.外鍵=主表.主鍵oop

 

隱式內鏈接

隱式內鏈接:看不到 JOIN 關鍵字,條件使用 WHERE 指定學習

 SELECT 字段名 FROM 左表, 右表 WHERE 條件

如:spa

建立一個學生我的信息表code

CREATE TABLE students(
    Id INT(30),
    Name VARCHAR(10),
    Age INT(4),
    Gender VARCHAR(25),
    PRIMARY KEY(Id)
);

建立一個學習成績表blog

CREATE TABLE course(
    Id INT(30),
     Java INT(5),
     Python INT(5),
     MySQL INT(5),
     Hadoop INT(5),
     C INT(5),
     PHP INT(5),
     Linux INT(5),
     English INT(5),
     Math INT(5),
     CONSTRAINT id_course FOREIGN KEY(Id) REFERENCES students(Id)
);

學習成績表的外鍵鏈接學生我的信息表的主鍵。這個時候,若是咱們想要查詢學生的Java成績,class

SELECT name, Java FROM students, course WHERE course.Id = students.Id;

 

顯式內鏈接

顯示內鏈接:使用 INNER JOIN ... ON 語句, 能夠省略 INNER基礎

SELECT 字段名 FROM 左表 [INNER] JOIN 右表 ON 條件

如:數據

仍是上面建立的students表和course表查詢

SELECT * FROM students INNER JOIN course c ON students.Id = c.Id;

查詢students表的全部信息,按ID插入course表的數據,一併查詢出來。di

 

外鏈接

左外鏈接

左外鏈接:使用 LEFT OUTER JOIN ... ON,OUTER 能夠省略

SELECT 字段名 FROM 左表 LEFT [OUTER] JOIN 右表 ON 條件

用左邊表的記錄去匹配右邊表的記錄,若是符合條件的則顯示;不然,顯示 NULL 。能夠理解爲:在內鏈接的基礎上保證左表的數據所有顯示。

 

右外鏈接

右外鏈接:使用 RIGHT OUTER JOIN ... ON,OUTER 能夠省略

SELECT 字段名 FROM 左表 RIGHT [OUTER ] JOIN 右表 ON 條件

用右邊表的記錄去匹配左邊表的記錄,若是符合條件的則顯示;不然,顯示 NULL。能夠理解爲:在內鏈接的基礎上保證右表的數據所有顯示。

相關文章
相關標籤/搜索