子查詢一般分為幾種

子查詢一般分為幾種

一、mysql子查詢基本知識

子查詢就是在原有的查詢語句中,嵌入新的查詢,來得到我們想要的結果集。

子查詢一般分為:where型子查詢、from型子查詢和exists型子查詢。

1.where型子查詢:將內層查詢結果當做外層查詢的比較條件。

select?列1,列2,...,列n?from?表名?where?列i?=/in?(select?列1,列2,...,列n?from?表名?where?...);

2.from型子查詢:把內層的查詢結果當成臨時表,供外層sql再次查詢。查詢結果集可以當成表看待。臨時表要使用一個別名。

select?列1,列2,...,列n?from?(select?列1,列2,...,列n?from?表名?where?...)?as?表別名?where?....;

3.exists型子查詢:把外層sql的結果,拿到內層sql去測試,如果內層的sql成立,則該行取出。內層查詢是exists后的查詢。

select?列1,列2,...,列n?from?表名?where?exists?(select?列1,列2,...,列n?from?表名?where?...);

二、查詢實例

下圖為成績表和班級表數據。

子查詢一般分為幾種

?1.查詢成績表中數學成績最高的學生信息;

子查詢一般分為幾種

2.查詢成績表中各個班級的最高總成績;

子查詢一般分為幾種

3.根據成績表和班級表,找出成績表中缺失成績的班級;

子查詢一般分為幾種

推薦教程: 《sql教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享