子查詢 聯結 約束 索引

2022-07-07 08:33:09 字數 848 閱讀 5540

-- 子查詢作為過濾條件

select name,gender

from emp

where dept_id

in (select id

from dept

where name = '開發部');

-- 子查詢作為計算字段

select name,

(select count(*)

from emp

where dept_id = dept.`id`) as res

from dept;

相同的資料不要多次出現,關係表的設計應該把資訊分成多個表,表之間通過某些共同的值關聯

內聯結where 聯結條件

用on後面接聯結 :from 表1 inner join 表2 on 條件

可以聯結多個表

自聯結舉例:查詢和員工a同公司的所有員工,首先需要查詢a的公司b,再查詢表中公司為b的所有員工。可以用子查詢,但是效能不好,最好採用自聯結。

自聯結是聯結相同的表,聯結條件為公司名相同,並且表2的員工名為a。公司相同代表表1的記錄會和表2所有同公司的員工的記錄進行組合,篩選名為a的員工就可以留下與其同公司的員工的記錄,然後返回的結果為表1 的資料。

外聯結內聯結是只顯示有聯結的記錄,外聯結會包含一張表中沒有關聯行的行,表1 left/right outer join 表2 on 條件,left表示從from子句左邊的表顯示所有行。

帶聚集函式的聯結

有顧客表和訂單表,查詢每個顧客下單的訂單數量。需要檢索的是顧客和訂單數,group by顧客id,count(訂單)。

恰當的排序使索引有用

子查詢 聯結表 建立高階聯結 組合查詢

巢狀在其他查詢中的查詢 利用子查詢過濾select cust id from orders where order num in select order num from orderitems where prod id tnt2 作為計算字段使用子查詢select cust name,cust ...

MySQL聯結查詢和子查詢

2018 2 24 16 18 12 星期六 今天需要統計乙個運營活動的資料,涉及三個表,分組比較多 活動描述 每個人可以領取多張卡片,好友也可以贈送其卡片,20或40張卡片可以兌換乙個獎品 要求統計出 1.每個使用者的個人資訊,2.領取的卡總數,3.自己領的卡的數目,4.好友送的卡的數目,5.兌換...

MySQL子查詢,聯結表

子查詢 select cust id from orders where order num in select order num from orderitems where prod id tnt2 對每個客戶執行count 計算,應該將count 作為乙個子查詢 select cust nam...