SQL學習筆記3 JOIN連線

2021-10-12 20:34:53 字數 1759 閱讀 2220

join:通過引用兩個或者兩個以上的表,從而獲取資料。

***實際應用過程中應盡量使用小表join大表,join查詢時應注意的點:

-- 只支援等值連線

select a.* from a join b on (a.id = b.id)

select a.* from a join b 

on (a.id = b.id and a.department = b.department)

-- 可以 join 多個表

select a.val, b.val, c.val from a join b 

on (a.key = b.key1) join c on (c.key = b.key2)

join有以下幾種用法:

1.(inner)join:表中至少有乙個行匹配,才會返回相應的行,否則不返回:

如下,返回所有同學的語文成績,如果沒有語文成績則不返回該同學姓名:

select stu_name,grade from

student

join

(select stu_id,grade from course

join

grade

on grade.stu_id=course.stu_id

where couname='語文') as a

on student.stu_id=a.stu_id;

2.left join: 即使右表中沒有匹配,也從左表返回所有的行:

如下:返回所有同學的語文成績,如果沒有語文成績則只返回該同學姓名

select stu_name,grade from

student

left join

(select stu_id,grade from course

join

grade

where couname='語文' and grade.stu_id=course.stu_id) as a

on student.stu_id=a.stu_id;

3.right join: 即使左表中沒有匹配,也從右表返回所有的行:

如下:返回所有同學的語文成績,如果沒有語文成績則只返回該同學姓名

select stu_name,grade from

(select stu_id,grade from course

join

grade

where couname='語文' and grade.stu_id=course.stu_id) as a

left join

student

on student.stu_id=a.stu_id;

4.full join: 只要其中乙個表中存在匹配,就返回行:

****join的示例用法,查詢在a表卻不在b表的資料:

-- 統計沒有選擇數學課的學生姓名

select tsuname from

(select couid from course where couname="數學") t1

join

grade

on t1.couid=grade.couid

right join

student

on grade.stuid=student.stuid

where student.stuid is null

java多執行緒 3 join的作用

join 方法是thread類的乙個例項方法。它的作用是讓當前執行緒陷入 等待 狀態,等join的這個執行緒執行完成後,再繼續執行當前執行緒。有時候,主線程建立並啟動了子執行緒,如果子執行緒中需要進行大量的耗時運算,主線程往往將早於子執行緒結束之前結束。如果主線程想等待子執行緒執行完畢後,獲得子執行...

SQL連線查詢 JOIN

主要列舉這個圖 或者,或者,同理,select column name s from table1 left join table2 on table1.column name table2.column name 或者,select column name s from table1 left o...

簡單學習SQL的各種連線Join

sql join 子句用於把來自兩個或多個表的行結合起來,基於這些表之間程式設計客棧的共同字段。最常見的 join 型別 sql inner join 簡單的 join sql left join sql right join sql full join,其中前一種是內連線,後三種是外鏈結。假設我們...