SQLite內連接(Inner Join)

SQLite內連接(inner join)是最常見的連接類型。 它用於組合滿足連接條件的多個表中的所有行記錄。

SQlite內連接是默認的連接類型。

語法:

SELECT ... FROM table1 [INNER] JOIN table2 ON conditional_expression ...

或者:

SELECT ... FROM table1 JOIN table2 USING ( column1 ,... ) ...

或者:

SELECT ... FROM table1 NATURAL JOIN table2...

內連接如下圖所表示,藍色陰影部分爲內連接的交集 -

SQLite內連接(Inner

示例

假設有兩個表:departmentstudent

student表具有以下數據:

sqlite> select * from student;
1|Maxsu|27|Shengzhen|20000.0
2|Minsu|25|Beijing|15000.0
3|Avgsu|23|Shanghai|2000.0
4|Linsu|25|Guangzhou|65000.0
5|Sqlsu|26|Haikou|25000.0
6|Javasu|21|Shengzhen|18000.0
7|Linsu|27|Haikou|10000.0
8|Minsu|23|Guangzhou|5000.0
9|Maxsu|23|Shenzhen|9000.0
sqlite>

department表具有以下數據:

sqlite> select * from department;
1|財務部|1
2|技術部|2
3|技術部|3
4|市場部|4
5|市場部|5
sqlite>

注:這些數據用於後續學習連接相關操作使用,如果您還沒有沒有創建或插入上面數據,可參考:http://www.yiibai.com/sqlite/insert-query.html ,自行完成操作。

示例:

查詢每個學生所在的部門,如下查詢語句 -

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

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

SQLite內連接(Inner

注:沒有指定部門的學生並不會查詢出來。因爲這裏是基於條件 STUDENT.ID = DEPARTMENT.EMP_ID 來查詢的。