來源:WildestDeram 發(fā)布時間:2019-05-10 16:22:37 閱讀量:1873
子查詢的作用:將一個查詢語句嵌套在另一個查詢語句中,擁有兩層查詢結(jié)果,內(nèi)層語句查詢的結(jié)果可以做為外層語句的查詢條件
SELECT 字段名稱 FROM tbl_name WHERE col_name=(SELECT col_name FROM tbl_name);
由IN引發(fā)的子查詢
SELECT * FROM emp
WHERE depId IN (SELECT id FROM dep);
通過改方法就可以忽略了id為7的測試用戶,更便捷的查出數(shù)據(jù)
通過NOT IN取反的方式可以取得id=7的測試用戶
SELECT * FROM empWHERE depId NOT IN (SELECT id FROM dep);
CREATE TABLE stu(
id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT KEY COMMENT '編號',
username VARCHAR(20) NOT NULL UNIQUE COMMENT '學(xué)員名稱',
score TINYINT UNSIGNED NOT NULL COMMENT '學(xué)員考試分?jǐn)?shù)'
);
INSERT stu(username,score) VALUES('king',95),
('queen',75),
('zhangsan',69),
('lisi',78),
('wangwu',87),
('zhaoliu',88),
('tianqi',98),
('ceshi',99),
('tiancai',50);
-- 等級表
CREATE TABLE level(
id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT KEY COMMENT '編號',
score TINYINT UNSIGNED COMMENT '分?jǐn)?shù)'
);
INSERT level(score) VALUES(90),
(80),
(70);
由比較運(yùn)算符引出的子查詢
SELECT id,username,score FROM stu
WHERE score>=(SELECT score FROM level WHERE id=1);
-- 查詢沒有得到評級的學(xué)員SELECT id,username,score FROM stuWHERE score<=(SELECT score FROM level WHERE id=1);
由EXISTS引發(fā)的子查詢,使用改關(guān)鍵詞查詢,內(nèi)層的查詢是不返回查詢值的,而是返回Boolean值,EXISTS關(guān)鍵詞的作用就是判斷內(nèi)層返回是true還是false。
-- 由EXISTS引發(fā)的子查詢
SELECT * FROM tbl_name WHERE EXISTS (SELECT tbl_name FROM name WHERE XX);
在線
客服
客服
熱線
7*24小時客服服務(wù)熱線
關(guān)注
微信
關(guān)注官方微信