Re: [SQL ] 想請問合併查詢?

看板Database (資料庫)作者 (多想兩分鐘 = =")時間17年前 (2007/05/13 01:43), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《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)
文章代碼(AID): #16HVpH0_ (Database)
文章代碼(AID): #16HVpH0_ (Database)