SQL巢狀查詢

2021-08-06 00:01:03 字數 1451 閱讀 6615

訂單表orders

顧客表 customers

訂單商品表orderitems

#列出訂購物品rgan01的所有顧客

select cust_name,cust_contact from customers where cust_id

in ( select cust_id from orders where order_num in

( select order_num from orderitems where prod_id='rgan01'));

-作為自查詢的select語句只能查詢單個列

顯示customers表中每個顧客的訂單總數

select cust_name,cust_contact,(select

count(*) from orders where orders.cust_id = customers.cust_id)as orders from customers;

執行結果

如何理解orders表中子查詢where orders.cust_id= customers.cust_id?

orders表中的cust_id 欄位為

customers表中的cust_id欄位為

自查詢中的select列表為count(*)

其含義為對customers表(上一級查詢中的表)中cust_id列的所有項(1000000001、1000000002、1000000003、1000000004、1000000005)按照orders表(子查詢的表)中cust_id列出現的次數進行計數

5.該子查詢對檢索出來的每個顧客執行一次, 得到結果

cust_id

1000000001 2

1000000002 0

1000000003 1

1000000004 1

1000000005 1

sql查詢之巢狀查詢

巢狀查詢也叫子查詢,乙個select語句的查詢結果能夠作為另外乙個語句的輸入值。子查詢不但可以出現在where子句中,也能出現在from中作為乙個臨時表使用,而且還可以出現在select list中,作為乙個欄位值來返回。1 單行子查詢 單行子查詢的返回值只有一行資料。可以再主查詢語句的條件語句中引...

SQL 多表查詢 巢狀查詢

多表查詢 1 結構 select from where 2 笛卡爾積查詢 select from student,course select from student,sdept 3 查詢每個學院的學生情況 select from student,sdept where student.deptno...

sql鑲嵌查詢 SQL 查詢巢狀使用

示例表如下 create table it student id int primary key auto increment,主鍵id name varchar 20 姓名 gender enum male female 性別 class id tinyint unsigned,班級號 age i...