文章目錄
- 1. distinct的使用
- 2. 子查詢in
- 3. 子查詢exists
1. distinct的使用
distinct 用于在查詢中傳回列的唯一不同值(去重複),支援單列或多列。(隻能寫在SELECT的後面)
比如,我們想擷取員工表中所有的部門,可以将SQL語句寫成如下:
2. 子查詢in
如果運算符 in 後面的值是來源于某個查詢結果,并非是指定的幾個值,這是就需要用到子查詢。子查詢又稱為内部查詢或嵌套查詢,即在SQL查詢的WHERE子句中嵌入查詢語句。
它的基本形式如下:
SELECT column_name FROM table_name
WHERE column_name IN(
SELECT column_name FROM table_name [WHERE]
);
下面是一個簡單的示例,根據表 score 中student_no字段,顯示 student 表中的具體學生資訊。
SELECT * FROM student
WHERE id
IN (SELECT student_no FROM score);
3. 子查詢exists
exists 是子查詢中用于測試内部查詢是否傳回任何行的布爾運算符。将主查詢的資料放到子查詢中
做條件驗證,根據驗證結果(TRUE 或 FALSE)來決定主查詢的資料結果是否保留。
它的一般形式如下:
#where子句使用exists文法
SELECT column_name1
FROM table_name1
WHERE EXISTS (SELECT * FROM table_name2 WHERE condition);
簡單的示例:
select * from
student A
where exists
(select * from score B where A.id = B.student_no and B.course = '線性代數');