作者dowbatw (Dowbatw)
看板Database
标题Re: [SQL ] 大难题请教(交集运算)
时间Sun Sep 28 17:19:24 2008
我自己找到这个交集运算的方法了
刚刚才找到
SELECT * FROM course
WHERE (`teacher`,`year`) in ( SELECT `teacher`,max(`year`) FROM course GROUP
BY `teacher`)
感谢版上各位高手的提醒
※ 引述《dowbatw (Dowbatw)》之铭言:
: 各位高手好
: 之前有一个问题,提出後被版主砍文
: 之後思考了一下
: 还是想不出答案
: 所以还是要来这边求救
: 以下是原本的问题
: ======================================================================
: 目前我有一个老师课程的资料表,里面的资料如下
: 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