7.子查詢
當進行查詢的時候,需要的條件是另外一個select語句的結果,這時候就要用到子查詢
用於子查詢的主要關鍵字有:in,not in,=,!=,exists,not exists等。
以下兩張表學生表,愛好表


從[student表]中查出愛好在[hobby表]中的學生 select*from student where hobby in (select hobby from hobby);

如果子查詢只有1條記錄,可以用=代替in select*from student where hobby = (select hobby from hobby limit 1);

子查詢語法上可以用表連接進行替代
子查詢: select*from student where hobby in (select hobby from hobby);
用表連接進行替代 select student.* from student,hobby where student.hobby = hobby.hobby;
結果都是相同的:

表連接替代子查詢的意義:
1.MySQL4.1以前的版本不支持子查詢,需要用表連接來實現子查詢的內容
2.表連接在很多情況下用於優化子查詢
8.記錄聯合
記錄聯合可以把兩個或多個select查詢的結果合並一起顯示出來。
select * from t1 union/union all select * from t2...union/union allselect * from tn;
union 和 union all的區別是union all是把結果集直接合並在一起,而union會將union后的結果進行一次distinct去重。
