SQL多表查詢的內外連線查詢分類及子查詢

2021-10-05 08:55:24 字數 1911 閱讀 2801

一、連線查詢

1.笛卡爾積

#笛卡爾積 後面沒有where 條件,會查詢出很多無效的資料

select p.

*,g.

*from product p,category g;

2.內連線

隱式內連線(隱式內連線接條件用where,用on錯誤)

select p.

*,g.

*from product p, category g where p.cno=g.cid;

#select p.*,g.* from product p,category g on p.cno=g.cid;

顯示內連線(inner可以省略掉,where/on都可執行)

select p.

*,g.

*from product p inner

join category g on p.cno=g.cid;

3.左外連線(以左表為依據)

select p.

*,g.

*from product p left

outer

join category g on p.cno=g.cid;

4.右外連線(以右表為依據)

select p.

*,g.

*from product p right

outer

join category g on p.cno=g.cid;

5.完全連線

#oracle裡面full join

select p.

*,c.

*from product p full

join category c on p.cno=c.cid;

# mysql 裡面做完全連線union

select p.

*,g.

*from product p left

outer

join category g on p.cno=g.cid

union

select p.

*,g.

*from product p right

outer

join category g on p.cno=g.cid;

6.不等連線

#on 等值連線才能使用on

select p.

*,g.

*from product p, category g where p.cno!=g.cid;

7.自然連線

#當欄位名稱相同進行連線,並且去除掉重複的列

select

*from product p natural

join category c;

二、子查詢
# 1.查詢出編號為小公尺手機所屬的類名

#1.查詢小公尺所在的分類編號

select cno from product where pname=

"小公尺mix4"

;#2.查詢該分類編號的類名

select cname from category where cid=

(select cno from product where pname=

"小公尺mix4"

);

SQL多表連線查詢

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

SQL多表連線查詢

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

SQL多表連線查詢

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