1. 程式人生 > >子查詢和連線表

子查詢和連線表

有如下兩張表:部門表和教師表

這裡寫圖片描述
這裡寫圖片描述

1、查詢出招生部門所有男老師姓名(子查詢放在where語句中)

select tname, deptno from teacher where gender='男' and
 deptno in (select deptno from dept where dname='招生部');

select tname,deptno from teacher t inner join dept p
on p.deptno=t.deptno where gender='男' and dname='招生部'

2、查詢出所有老師的姓名和部門(子查詢放在列中)

select
tname,deptno,(select dname from dept where dept.deptno=teacher.deptno) dname from teacher;

3、查詢出所有在招生部,人力部的老師列表

select tname,deptno from teacher where deptno in 
(select deptno from dept where dept.deptno=teacher.deptno 
and dname in ('招生部','人力部'));

連線查詢:
這裡寫圖片描述

表連線的執行順序:先執行where條件,再連線;

內連線,左外連線和右外連線的區別:

內連線:滿足on連線條件的資料才顯示出來;

左外連線:即使不滿足on連線條件,也會把所有左邊的資料顯示出來;

右外連線同理;

例如:

查詢出所有老師的姓名和部門

1、使用內連線

select t.tname,d.dname from teacher t inner join dept d on 
t.deptno=d.deptno;

這樣查詢得到的結果如下
這裡寫圖片描述

得到71條資料;

2、使用左外連線

select t.tname,d.dname from teacher t left join dept d on 
t.deptno=d.deptno;

這裡寫圖片描述

得到77條資料;

自連線:

示例

查詢出所有老師的姓名及其導師

select t1.tname as '老師' ,t2.tname as ‘導師’ from teacher t1 
inner join teacher t2 on t1.mgrno=t2.tno;

因為是兩張相同表進行連線,所以叫自連線;

三表連線:

示例

查詢出所有老師的姓名,部門及其導師

select t1.tname as '老師' ,t2.tname as ‘導師’ dept.dname from 
teacher t1 inner join teacher t2 on t1.mgrno=t2.tno 
left join dept on t1.deptno=dept.deptno;

相關推薦

查詢連線

有如下兩張表:部門表和教師表 1、查詢出招生部門所有男老師姓名(子查詢放在where語句中) select tname, deptno from teacher where gender='男' and deptno in (select de

Oracle查詢查詢

左外連接 查詢 sele 多表查詢 字段 ora 需要 avg lar 多表查詢需要用到表的連接 連接可以分為:(自行百度)   交叉連接(數字邏輯的笛卡爾積,不做解釋)     等值連接       例如:select * from t_a, t_b where t_a.

MySQL基礎知識(四)——查詢連線

一.子查詢 先建立一張商品表,後續對其進行操作。 # 建立一個商品表,商品id:goods_id 商品名稱:goods_name 商品分類:goods_cate # 商品品牌:brand_name 商品價格:goods_price 是否上架:is_show 是否已售空:is_saleof

MySQL 查詢連線查詢

SELECT * FROM grade; SELECT * FROM result; SELECT * FROM student; SELECT * FROM subject; SELECT s.StudentNo ,s.StudentName ,j.SubjectName ,r.Stude

oracle查詢連線

有如下兩張表:部門表和教師表 1、查詢出招生部門所有男老師姓名(子查詢放在where語句中) select tname, deptno from teacher where deptno in (select deptno from dept where dname='

sql 異常<除非另外還指定了 TOP、OFFSET 或 FOR XML,否則,ORDER BY 子句在視圖、內聯函數、派生查詢公用表表達式中無效。>

select sel top percent 異常 子句 cor 查詢 表達 問題:當子查詢內存在ORDER BY 字句時查詢會報錯 SQL: SELECT * FROM (   SELECT * FROM USER ORDER BY USER_CORD ) S. 解

資料查詢連線查詢查詢聯合查詢

一、連線查詢 基本含義:將兩個以上的表(資料來源),連線起來成為一個數據源。 基本形式:from 表1 [連線方式] join 表2 [on 連線條件] join 為連線查詢關鍵字--必須 [連線方式] [on 連線條件]為可選性  交叉連線:&nb

針對sql錯誤:“除非另外還指定了 TOP 或 FOR XML,否則,ORDER BY 子句在檢視、行內函數、派生查詢公用表表達式中無效”的原理與解決

執行sql語句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by date desc 邏輯上看著挺對 但是報錯: 除非另

如何讓in/exists 查詢(半連線)作為驅動

一哥們問我,怎麼才能讓子查詢作為驅動表? SQL如下: select rowid rid from its_car_pass7 v where 1 = 1 and pass_datetime >= to_date('2013-07-

MySQL查詢關聯商品訂單

      在擼程式碼寫程式的時候,免不了要用到MySQL關聯表查詢語句,而今天在做商品訂單銷量排行的時候,就更用到MySQL子查詢了。子查詢,說的通俗一點就是把一個查詢得到的結果,作為查詢條件巢狀在另一個查詢當中,輸出結果。如下: //goods是商品表,order是訂單

Django ORM queryset object 解釋(查詢join連查詢的結果)

解釋 pri mod span books round 取數據 通過 color #下面兩種是基於QuerySet查詢 也就是說SQL中用的jion連表的方式查詢books = models.UserInfo.objects.all() print(type(books)

除非另外還指定了 TOP 或 FOR XML,否則,ORDER BY 子句在視圖、內聯函數、派生查詢公用表表達式中無效

condition 分組 gif 篩選器 使用 外部 如果 代碼 con   SQL 不同於與其他編程語言的最明顯特征是處理代碼的順序。在大數編程語言中,代碼按編碼順序被處理,但是在SQL語言中,第一個被處理的子句是FROM子句,盡管SELECT語句第一個出現,但是幾乎總是

012:查詢增刪改查

err eat 多個 cal mat 行數 分類 查詢 同時 一. 子查詢 子查詢就是指在一個select語句中嵌套另一個select語句。同時,子查詢必須包含括號。 MySQL 5.6.x 版本之前,MySQL的子查詢性能較差,但是從5.6開始,不存在性能差的問題。

firedac引擎DATASNAP多查詢提交

datasnap des copy for dac proc fired close ats firedac引擎DATASNAP多表查詢和多表提交 屬性設置FDTableAdapter1.SchemaAdapter := FDSchemaAdapter;FDTableAda

oracle 查詢組合函式

oracle 子查詢和組合函式 --查詢與“SCOTT”在同一個部門的員工 select empno,ename,deptno from emp where deptno in (select deptno from emp where ename='SCOTT'); --查詢不在銷售部和財務部工作的僱

mysql的單查詢查詢

1,新建表和插入資料 建立表,設定欄位的約束條件 create table employee( id int primary key auto_increment, name varchar(20) not null, sex enum('male','female') no

oracle的查詢連線如果有值做連線查詢,否則只查主表)

與arr as( - 維護批次表    從雙     聯合中選擇8 a 全部從雙重中    選擇2 a     ), arr2 as(--dw層檢視  

查詢分組查詢

一、子查詢 什麼是子查詢? 一個查詢語句裡面巢狀一個查詢。外層的叫做符查詢,內層裡面巢狀的叫做子查詢。 語法: select ....... from 表名 where 欄位 比較運算子 (子查詢); #其中,在查詢過程中,先執行子查詢部分,求出子查詢部分的值,再執行整個父查詢,

mysql之單查詢查詢

註釋:單表查詢就是記錄的詳細操作(增刪查,改的需求以及方法比較多) 一,複製表(索引和自增的屬性不能複製,需要自己新增) 拷貝結構以及資料 create table 新表名 select * from 舊錶名; 例:create table copy_customer

[MS Access+MySQL系列]如何利用phpMyAdmin介面進行資料匯入、SQL簡易資料查詢資料刪除等操作?

承接[MS Access+MySQL系列]如何在phpMyAdmin設定使用者帳號和密碼文章,當後端資料庫搭建完成後,如何在phpMyAdmin中匯入資料表、進行簡易SQL查詢和資料表刪除等等操作,使得未來前端操作人員進行存取作業,成為下一步重點工作。 本文以虛構的客戶資料為例,說明如何將客