MySQL查詢語句(select)詳解(2)


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去重。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM