Mysql入门系列:MYSQL解决方案随笔
2006-12-31 10:46:19 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁诡垎鍐f寖闂佺娅曢幑鍥灳閺冨牆绀冩い蹇庣娴滈箖鏌ㄥ┑鍡欏嚬缂併劎绮妵鍕箳鐎n亞浠鹃梺闈涙搐鐎氫即鐛崶顒夋晬婵絾瀵ч幑鍥蓟閻斿摜鐟归柛顭戝枛椤牆顪冮妶搴′簼缂侇喗鎸搁悾鐑藉础閻愬秵妫冮崺鈧い鎺戝瀹撲礁鈹戦悩鎻掝伀缁惧彞绮欓弻娑氫沪閹规劕顥濋梺閫炲苯澧伴柟铏崌閿濈偛鈹戠€n€晠鏌嶆潪鎷屽厡闁汇倕鎳愮槐鎾存媴閸撴彃鍓卞銈嗗灦閻熲晛鐣烽妷褉鍋撻敐搴℃灍闁绘挻娲橀妵鍕箛闂堟稐绨肩紓浣藉煐濮樸劎妲愰幘璇茬闁冲搫鍊婚ˇ鏉库攽椤旂》宸ユい顓炲槻閻g兘骞掗幋鏃€鐎婚梺瑙勬儗閸樺€熲叺婵犵數濮烽弫鍛婃叏椤撱垹纾婚柟鍓х帛閳锋垶銇勯幒鍡椾壕缂備礁顦遍弫濠氱嵁閸℃稒鍊烽柛婵嗗椤旀劕鈹戦悜鍥╃У闁告挻鐟︽穱濠囨嚃閳哄啰锛滈梺褰掑亰閸欏骸鈻撳⿰鍫熺厸閻忕偟纭堕崑鎾诲箛娴e憡鍊梺纭呭亹鐞涖儵鍩€椤掑啫鐨洪柡浣圭墪閳规垿鎮欓弶鎴犱桓闂佸湱枪閹芥粎鍒掗弮鍫熷仺缂佸顕抽敃鍌涚厱闁哄洢鍔岄悘鐘绘煕閹般劌浜惧┑锛勫亼閸婃牠宕濋敃鈧…鍧楀焵椤掍胶绠剧€光偓婵犱線鍋楀┑顔硷龚濞咃絿妲愰幒鎳崇喓鎷犻懠鑸垫毐闂傚倷鑳舵灙婵炲鍏樺顐ゆ嫚瀹割喖娈ㄦ繝鐢靛У绾板秹寮查幓鎺濈唵閻犺櫣灏ㄥ銉р偓瑙勬尭濡繂顫忛搹鍦<婵☆垰鎼~宥囩磽娴i鍔嶉柟绋垮暱閻g兘骞嬮敃鈧粻濠氭偣閸パ冪骇鐎规挸绉撮—鍐Χ閸℃ê闉嶇紓浣割儐閸ㄥ墎绮嬪澶嬪€锋い鎺嶇瀵灝鈹戦埥鍡楃仯闁告鍕洸濡わ絽鍟崐鍨叏濡厧浜鹃悗姘炬嫹

核心提示: 这里有一个问题要引起注意,此输出列出了学生的ID 和事件的ID,Mysql入门系列:MYSQL解决方案随笔(4),student_id 列出现在student 和score 表中,因此,除了必须自己明确定义hold_tbl 表中的列外,其想法是类似的,开始您可能会认为选择列表可以给出stu
这里有一个问题要引起注意。此输出列出了学生的ID 和事件的ID。student_id 列出现在student 和score 表中,因此,开始您可能会认为选择列表可以给出student.student_id 或score . student _ id。但实际不是这样,因为能够找到感兴趣记录的基础是所有学分表字段返回NULL。选择score.student_id 将只在输出中产生NULL 值的列。类似的推理可应用到event_id 列,它也出现在event 和score 表中。
3.8.3 执行UNION 操作
如果想通过从具有相同结构的多个表中建立一个结果集,可在某些数据库系统中使用某种UNION 语句来实现。MySQL没有UNION(至少直到3 . 2 4版还没有),但有许多办法来解决这个问题,下面是两种可行的方案:
■ 执行多个SELECT 查询,每个表执行一个。如果不关心所选出行的次序,这样做就行了。
■ 将每个表中的行选入一个临时存储表,然后选择该表的内容。这样可对行按所需的次序进行排序。在MySQL3.23版及以后的版本中,可通过允许服务器创建存储表来解决这个问题。而且,还可以使该表为临时表,以便在您与服务器的会话结束时,自动删除该表。
在下面的代码中,我们明确地删除该表使服务器释放与其有关的资源。如果客户机会话将继续执行进一步的查询,这样做很有好处。为了取到更好的性能,还可以利用HEAP(在内存中)表。
对于3 . 2 3版本,除了必须自己明确定义hold_tbl 表中的列外,其想法是类似的,而且结尾处的DROP TABLE 是强制性的,用来防止在以下客户机会话生命周期之后继续存在:
更多精彩
赞助商链接