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

2022-03-19 09:45:25 字數 2537 閱讀 3792

--

建立資料庫

create

database

goodssystem

go--

使用資料庫

usegoodssystem

go--

建立商品型別表

create

table

goodstype

( io

intprimary

keyidentity(1,1

), typename

varchar(10)not

null)go

--建立商品資訊表

create

table

goods

( id

intprimary

keyidentity(1,1

), typeld

intforeign

keyreferences

goodstype(io),

name

varchar(20)not

null

, price

decimal(10,2) not

null

, productiondate

datetime

notnull

, amount

intnot

null

)go

插入資料

insert

into goodstype values('

家電'),(

'電子'),

('食品'

),('生活用品')

insert

into goods values('

1','

冰箱',3344,'

2017-06-03

',100),(

'1','電視

',1777,'

2016-06-03

',100),(

'1','微波爐

',333,'

2017-02-26

',100),(

'2','手機

',4500,'

2017-05-07

',100),(

'2','顯示器

',1777,'

2016-12-04

',100),(

'2','主機

',1500,'

2017-03-09

',100),(

'3','老乾媽

',9,'

2017-07-06

',100),(

'3','爽口榨菜

',3.6,'

2017-06-08

',100)

查詢:

select

*from

goodstype

select

*from goods

--

內連線(inner可以不寫)

select

g1.name,g2.name,price,productiondate,g2.amount

from goodstype g1 inner

join goods g2 on g1.io=

g2.typeld

select

*from

goods

select

*from

goodstype

--外連線分(左外連線)和(右外連線)

--左外連線( left join)

select

g2.name,price,productiondate,amount,g1.name

from goods g1 left

join goodstype g2 on g1.typeld=

g2.io

--右外連線(right join--空值的會顯示出來)

select

g2.name,price,productiondate,amount,g1.name

from goods g1 right

join goodstype g2 on g1.typeld=

g2.io

--全外連線(full outer(可以不寫) join--空值的會顯示出來)

select

g1.name,g2.name,price,productiondate,g2.amount

from goodstype g1 full

outer

join goods g2 on g1.io=

g2.typeld

--交叉連線(笛卡爾積)查詢所有的值

select

g1.name,g2.name,price,productiondate,g2.amount

from goodstype g1 cross

join goods g2 where g1.io=g2.typeld

SQL多表連線查詢

本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。一 外連線 外連線可分為 左連線 右連線 完全外連線。1 左連線 lef...

SQL多表連線查詢

本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。一 外連線 外連線可分為 左連線 右連線 完全外連線。1 左連線 lef...

SQL多表連線查詢

本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。一 外連線 外連線可分為 本文主要列舉兩張和三張表來講述多表連線查詢。新...