資料庫多表查詢 子查詢

2021-09-26 03:38:52 字數 1216 閱讀 8754

子查詢:查詢中巢狀查詢,稱巢狀巢狀查詢為子查詢

下面要使用的表如下,放在此處便於更好地理解

emp(員工資訊表)

dept(部門表)

例:查詢公司員工工資最高的員工資訊

首先要得到公司員工的最高工資的值

select max(salary) from emp ;  -- 假設查詢結果為10000
然後根據上一句sql語句的查詢結果作為條件去查詢員工資訊

select * from emp where emp.salary=10000 ;
使用子查詢的話,一條sql語句就可以完成

select * from emp where emp.salary=(select max(salary) from emp);
例:查詢財務部和市場部所有員工的資訊

首先在部門表查詢財務部和市場部的部門id

select id from dept where name='財務部' or name ='市場部';  --結果為2,3
根據上條sql語句查詢的結果去員工表查詢資訊

select * from emp where dept_id=2 or dept_id=3;
使用子查詢完成上述案例

select * from emp where dept_id in (select id from dept where name in ('財務部','市場部'));
例:查詢員工入職時間在2011-11-11之後的員工資訊和部門資訊

select * from dept t1,(select * from emp where emp.`join_date`>'2011-11-11') t2

where t1.id=t2.dept_id -- t1為dept表的別名,t2為入職日期在2011-11-11之後的員工資訊的虛擬表

多表查詢資料庫

在專案中建立資料庫的時候,我們經常會進行多表查詢。資料庫中建立乙個表應該與乙個實體類相對應。乙個實體物件應該與一條記錄相對應。資料庫是一種結構化的查詢語言,資料庫語言是非過程化的,寫一句就可以執行一句。進行建表的時候,如果是一對多的關係,應該在多的一方建立乙個字段。該字段為少的一方的id。進行建表的...

資料庫多表查詢

笛卡爾積 select from emp,dept select from emp cross join dept 內連線 inner join 內連線把兩個表連線成乙個表 稱為第三個表 在這個表中僅包含那些滿足連線條件的記錄行 select from emp,dept where emp.dept...

資料庫之多表查詢(連線查詢)

一 非等值和等值的多表查詢 select c.catname 圖書類別 b.bookname 書名 b.price from cats c,book b select c.catname 圖書類別 b.bookname 書名 b.price from cats c,book b where c.id...