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,其中前一種是內連線,後三種是外鏈結。假設我們...