先建立2個表:學生表和教師表
在每個表中找出符合條件的共有記錄。[(1)左連線:根據左表的記錄,在被連線的右表中找出符合條件的記錄與之匹配,如果找不到與左表匹配的,用null表示 [x left [outer] join y on...]x inner join y on...
]第一種寫法:只用where
select t.teacher_name,s.student_name from teacher t,student s where t.id=
s.teacher_id
第二種寫法:使用
join..on
..select t.teacher_name,s.student_name from teacher t join student s on t.id=
s.teacher_id
第三種寫法:使用inner
join .. on
..select t.teacher_name,s.student_name from teacher t inner
join student s on t.id=s.teacher_id
第一種寫法:leftjoin .. on
..select t.teacher_name,s.student_name from teacher t left
join student s on t.id=
s.teacher_id
第二種寫法:
(2)右連線:根據右表的記錄,在被連線的左表中找出符合條件的記錄與之匹配,如果找不到匹配的,用null填充 [x right [outer] join y on...]
第一種寫法:rightjoin .. on
..select t.teacher_name,s.student_name from teacher t right
join student s on t.id=
s.teacher_id
第二種寫法:
(3)全連線:返回符合條件的所有表的記錄,沒有與之匹配的,用null表示(結果是左連線和右連線的並集)
第一種寫法:(full注意:oracle資料庫支援full join,mysql是不支援full join的join .. on
..)select t.teacher_name, s.student_name from teacher t full
join student s on t.id =
s.teacher_id;
第二種寫法:(
full
outer
join .. on
)select t.teacher_name, s.student_name from teacher t full
outer
join student s on t.id = s.teacher_id;
如果直接查詢2張表,將得到乙個笛卡爾積,兩個表的乘積
select * from teacher,student;
關於笛卡爾積的說明,請參考部落格:
SQL 左外連線,右外連線,全連線,內連線,自連線
左連線 返回包括左表中的所有記錄和右表中聯結字段相等的記錄 select a.rid,a.picname,b.trpid,b.rid,b.picname,b.picurl from tc restaurants a left join tc restaurants pictures b on a.r...
SQL查詢語句,內連線,外連線
這幾天做軟體綜合設計的專案,我負責的是服務端,因為目前打算從前端轉型到後台,所以需要補足後台相關的知識。關於專案方面的東西就不介紹了,因為文章的主題是sql,直接給出資料表的設計圖。表之間的連線線表示外來鍵。以專案中的查詢為例,講述巢狀查詢語句以及表之間的連線。1 獲取某一問題的所有回答 回答者 回...
SQL 內連線,外連線
假設一堆男女在教堂,有夫婦有單身的,假設男為左表,女為右表 教父說 結了婚的人請出去,結了婚的人請手拉手,於是結了婚的男女站了起來,這就是inner 內連 教父說 男的並且和這些男的結婚的女的請出去,結了婚的人請手拉手,於是,結了婚的夫婦手拉手出去,單身的男的也出去了。這就是 left 左連 教父說...