Re: [SQL ] 想請問合併查詢?
※ 引述《jimwayne123 (曼陀羅)》之銘言:
: 剛剛研究了一陣子的 Join,可是感覺好像跟需要的行為不太一樣@@
: 小弟是用 M$-SQL,有三個 table 裡面共同都有 create_date 跟 owner 兩個欄位
: (三個 table 的欄位命名不一樣,但是意思是一樣的@@)
: 因為需要抓出三個 table 中某個 owner 的 create_date 的最大值
: (即最新加入的資料列..)
: 想請問大大們,有沒有辦法直接用某種 SQL 敘述式
: 把三個 table 中 owner='abc' 的所有資料列都抓出來
: 列成像是↓這個樣子呢?@@..
: -----------------------
: | owner | create_date |
: -----------------------
: | abc | 2007/01/01..|
: -----------------------
: | abc | 2007/01/02..|
: .
: .
: | abc | 2007/05/10..|
: -----------------------
: 就是想把某個使用者的所有 create_date 結合成一張 table
: 然後用 MAX() 對查詢結果的 table 直接抓出最新的時間出來..m(_ _)m
: 原本有分別對三張 table 找出最大值
: 可是找出三張 table 最新的 create_date 後
: 又不知道該怎麼把取出的字串做比較,比出三個值裡誰最新...Orz
join想成是橫向的欄位擴展
比如三張表 a, b, c
你需要的結果是:
a.owner, a.create_date, b.owner, b.create_date, c.owner, c.create_date
這時候才是join
union是直向的列聯合,你要的是這個。
select max(create_date) from a group by owner
union all
select max(create_date) from b group by owner
union all
select max(create_date) from c group by owner
...
select max(date) from
(
select max(create_date) date from a group by owner
union all
select max(create_date) from b group by owner
union all
select max(create_date) from c group by owner
) tt
這段大概能動吧,大概....
by the way, M$的 union all比 union快,兩者的差別嘛… google
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.169.40.94
※ 編輯: grence 來自: 218.169.40.94 (05/13 01:46)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章