sql怎麼用查詢結果作為條件進行查詢

2021-05-05 17:27:56 字數 3179 閱讀 3808

1樓:浪小客

1、查詢資料庫表的所有欄位並直接使用select語句。從資料庫表中選擇*。

2、查詢資料庫表的part部分欄位,可以使用select field命令,從資料庫表中選擇欄位名稱。

3、根據條件查詢,使用後面的條件,加上從資料庫表中選擇條件名稱。

4、使用distinct命令查詢資料庫欄位記錄中的非重複結果,從資料庫中選擇不同的欄位名稱。

5、查詢資料庫表前面的資料,可以使用top命令,從資料庫表中選擇頂部編號*。

2樓:匿名使用者

巢狀select語句也叫子查詢,一個 select 語句的查詢結果能夠作為另一個語句的輸入值。子查詢不但能夠出現在where子句中,也能夠出現在from子句中,作為一個臨時表使用,也能夠出現在select list中,作為一個欄位值來返回。

1、單行子查詢 :單行子查詢是指子查詢的返回結果只有一行資料。當主查詢語句的條件語句中引用子查詢結果時可用單行比較符號(=, >, <, >=, <=, <>)來進行比較。

例:select ename,deptno,sal from emp

where deptno=(select deptno from dept where loc='new york');

2、多行子查詢:多行子查詢即是子查詢的返回結果是多行資料。當主查詢語句的條件語句中引用子查詢結果時必須用多行比較符號(in,all,any)來進行比較。

其中,in的含義是匹配子查詢結果中的任一個值即可("in" 操作符,能夠測試某個值是否在一個列表中),all則必須要符合子查詢的所有值才可,any要符合子查詢結果的任何一個值即可。而且須注意all 和any 操作符不能單獨使用,而只能與單行比較符(=、>、< 、>= 、<= 、<>)結合使用。 例:

1).多行子查詢使用in操作符號例子:

查詢選修了老師名叫rona(假設唯一)的學生名字

sql> select stname from student

where stid in(selectdistinct stid from score where teid=(select teid from teacher where tename='rona'));

查詢所有部門編號為a的資料: select ename,job,sal from emp

where deptno in ( select deptno from dept where dname like 'a%');

2).多行子查詢使用all操作符號例子:查詢有一門以上的成績高於kaka的最高成績的學生的名字: sql> select stname from student

where stid in(select distinct stid from score where score >all(select score from score where stid=(select stid from student where stname= 'kaka') )); 3). 多行子查詢使用any操作符號例子:查詢有一門以上的成績高於kaka的任何一門成績的學生的名字:

sql> select stname from student

where stid in(select distinct stid from score where score >any(select score from score where stid=(select stid from student where stname='kaka')));

希望能幫到你

3樓:時針樓

像你這種情況用 in或not in 關鍵字比較好

4樓:射手小小王

select * from table_b where people_name in (select people_name from table_a);

sql中引用一個表的查詢結果作為條件來查詢另一個表如何實現?

5樓:匿名使用者

1、用baisqlserver作為測試,建立學生、教師、班

du級三張zhi表。每張表都有一個id,int型別dao的專(自增長),作為每屬個表的主鍵。

2、新增測試資料,並建立班級與學生、教師與班級的中間表。insert into dbo.student(sname) values('張三'),插入多條,由於id自增長所以sid自動填充了。

類似將教師和班級也新增上測試資料。

3、建立班級教師表class_teacher,班級學生表class_student。

4、然後將1和2 放到1班,3和4放到2班。5和6 不放(可以理解為剛入學沒有分配班級)。然後將3個老師分配到3個班級insert into dbo.

class_teacher values (1,1)insert into dbo.class_teacher values (2,2)insert into dbo.class_teacher values (3,3)。

5、這樣,1班和2班各有兩名同學,3班沒有同學,有兩個同學沒有分配班級,每一個老師都分配了班級。現在要查詢所有班級學生情況。

6樓:樂樂愛知道

exists 這個裡面得要包含和外面表的關係的。

select 消費

號,sum(金額)金額 from 護理版卡權消費 twhere exists (

select distinct a.消費號 from 護理卡消費歷史 a left join 護理卡消費 d on a.消費號=d.消費號

where a.服務名稱 in (select b.服務名稱 from 服務類別 b where b.服務專案類別='面部護理')

and t.消費號=a.消費號 )

group by 金額,消費號

7樓:

exists 這個裡面得bai要包含和外du面表的關係的。zhiselect 消費號,sum(金額

dao)金額 from 護理版卡權消費 twhere exists (

select distinct a.消費號 from 護理卡消費歷史 a left join 護理卡消費 d on a.消費號=d.消費號

where a.服務名稱 in (select b.服務名稱 from 服務類別 b where b.服務專案類別='面部護理')

and t.消費號=a.消費號 )

group by 金額,消費號

你這樣試試

sql查詢排序後前20條語句,SQL查詢排序後前20條語句

select c.d from select c,d,rownum rn from select t.from table1 order by b desc 降序 t1 where rn 20 注 用rownum的話,你要先排好序,然後再用rownum生成偽列,再限制行數。關於sql語句查詢排序 一...

sql查詢出結果怎麼讓它只顯示前十條資料

sql 查詢出結果 copy讓它只顯示前十條資料可以通過baitop關鍵字du。語句格式為 select top 10 列名 zhi表 from 表名 查詢條件 top關鍵字在sql語言中用來限制返dao回結果集中的記錄條數,有兩種使用形式,其中一種是top關鍵字後帶數字,表示要返回結果集中的記錄條...

sql查詢分析器怎麼用,sql查詢分析器 裡執行指令碼怎麼操作

煙怡書景福 最簡單的用法是用來測試sql語句指令碼。也可以用來sql指令碼中每塊的查詢效能等。詳細的還是參考相關教程比較好。這裡的答案是很零亂的。 首先你確認是否安裝sql server資料庫 然後在開始選單 microsoft sql server 查詢分析器 登陸後輸入以上語句按f5執行 sql...