sql語句的多表查詢方式

2021-08-28 04:23:59 字數 2013 閱讀 7351

例如:按照 department_id 查詢 employees(員工表)和 departments(部門表)的資訊。

方式一( 通用型):select ... from ... where

select e.last_name,e.department_id,d.department_name

from employees e,departments d

where e.department_id = d.department_id

方式二:select ... from ... natural join ...

有侷限性:會自動連線兩個表中相同的列(可能有多個:department_id 和

manager_id)

select last_name,department_id,department_name

from employees

natural join departments

方式三:select ... join ... using ...

有侷限性:好於方式二,但若多表的連線列列名不同,此法不合適

select last_name,department_id,department_name

from employees

join departments

using(department_id)

方式四:select ... from ... join ... on ...

常用方式,較方式一,更易實現外聯接(左、右、滿)

select last_name,e.department_id,department_name

from employees e

join departments d

on e.department_id = d.department_id

-- 內連線

1)--等值連線:在連線中使用等號(=)操作就是等值連線

例子:select empno, ename, dname

from emp, dept

where emp.deptno=dept.deptno and dept.deptno=30;

--不等值連線:主要用除了等號之外的操作符,比如:<>、>、<、>=、<=、like、in、between…and。

例子:select distinct dname, loc

from emp, dept

where emp.deptno = dept.deptno and sal>1500;

-- 外連線

--左外連線:左外連線就是在等值連線的基礎上加上主表中的未匹配資料

select*

fromtesta 

left  jointestb 

ontesta.a=testb.a

--右外連線:右外連線是在等值連線的基礎上加上被連線表的不匹配資料

select*

fromtesta 

right jointestb 

ontesta.a=testb.a

--滿外連線:全外連線是在等值連線的基礎上將左表和右表的未匹配資料都加上

select

fromtesta 

full jointestb

ontesta.a=testb.a

sql語法之多表查詢方式

一 sql語句的多表查詢方式 例如 按照 department id 查詢 employees 員工表 和 departments 部門表 的資訊。方式一 通用型 select from where select e.last name,e.department id,d.department na...

SQL 多表查詢的幾種連線方式

建立資料庫 create database goodssystem go 使用資料庫 usegoodssystem go 建立商品型別表 create table goodstype io intprimary keyidentity 1,1 typename varchar 10 not null...

資料庫多表查詢SQL語句

最近在做 進銷存業務系統 作為專案組成員的一部分,我負責統計查詢,簡單說就是多表查詢,網上有很多,但是很明確的卻沒有,所以讓我這個初學者了費,最終還是搞出來了,在這裡也和大家共享一下成果和其中出現的問題,高手可繞道,不求點讚,只為方便大家。下面開始 我一共建了4個表,分別是supplier purc...