看板 Database 關於我們 聯絡資訊
各位高手好 之前有一個問題,提出後被版主砍文 之後思考了一下 還是想不出答案 所以還是要來這邊求救 以下是原本的問題 ====================================================================== 目前我有一個老師課程的資料表,裡面的資料如下 id coursename teacher year -------------------------------------------- 1 A 甲 2008 2 B 甲 2008 3 C 甲 2007 4 D 甲 2007 5 E 乙 2007 6 F 乙 2007 7 G 乙 2006 8 H 乙 2006 我的目標是要得出每位老師最新年度所開的所有課程 也就是如下資料 id coursename teacher year -------------------------------------------- 1 A 甲 2008 2 B 甲 2008 5 E 乙 2007 6 F 乙 2007 ===================================================================== 結果回傳 以下是我的看法: 我想是不是需要先從表格裡面取出每一筆「teacher對應year」的資料 然後將這個資料和「全部的資料」作交集運算? 但MYSQL似乎沒有這種INTERSECT的運算方法 是不是會用where的方式,或者是用having,或者用一些subquery方式 因為group by將會使得每一個teacher都只會出現一筆相對應的資料 也就是說group by使得每一個teacher註定只會出現一次 可是where又不知道怎麼指定 因為他並不是統一的條件 並不是每一筆資料都對應同一個year 不知道版上哪位高手能提供我思考的方向? 功力太弱了 感激不盡! -- “The philosophers have only interpreted the world, in various ways. The point, however, is to change it.” Karl Marx "Theses on Feuerbach" (1845), Thesis 11 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.199.84 ※ 編輯: dowbatw 來自: 140.119.199.84 (09/28 16:56) ※ 編輯: dowbatw 來自: 140.119.199.84 (09/28 17:02) ※ 編輯: dowbatw 來自: 140.119.199.84 (09/28 17:07) ※ 編輯: dowbatw 來自: 140.119.199.84 (09/28 17:09) ※ 編輯: dowbatw 來自: 140.119.199.84 (09/28 17:10)
ClareQ:oracle的話,用keep(dense rank...)最快 09/28 17:10
dowbatw:如果欄位資料在不同資料表的話還可以用join,偏偏現在不能 09/28 17:15
PsMonkey:同一個 table 自己 join 自己會有什麼錯誤訊息? 09/28 17:18
hhharley:DB2中有ROW_NUMBER()可以用 09/29 00:55