close
以前學會select語法後,一直都用很簡單的查詢方式在寫資料庫
ex...Select * from 表 where A欄位=某個值
把所有A欄位等於某個值全抓出來
一直以來都沒有機會用到更進階一點的語法
ex..Select 欄位 from 表 where A欄位 in (值A,值B)
把A欄位等於值A或是值B的那一列資料抓出來
直到最近奉命要刪除某資料庫時,才用到這個比較進階的語法
這個資料庫是這樣設計的
Table user(使用者)
userID | name |
a001 | five |
... | ... |
Table Blog(部落格)
blogID | userID |
b001 | a001 |
b002 | a001 |
... | ... |
Table Article(文章)
id | blogID | entryName |
e001 | b001 | 五五五 |
e002 | b002 | 四四四 |
... | ... | ... |
這三個資料表紀錄了哪些使用者開了幾個BLOG又寫了哪些文章
上頭的要求很簡單,留下five使用者所寫的文章,其他全部刪除
原本我還笨笨想說,先把所有非five的id找出來,對應他開的那些部落格id
再一筆一筆進去Article資料表對應blogID來刪除資料
但是這可是有幾百筆耶XD
但是後來想到有這個where...in的語法
於是用了一行SQL指令解決這個問題:
Delete from Article
where blogID in (
select Blog.blogID
from user,Blog
where Blog.userID=user.userID and name'five'
)
這樣一行語法簡單解決我眼睛要盯半天的事情
全站熱搜
留言列表