WEB开发网
开发学院数据库MySQL Mysql入门系列:MYSQL解决方案随笔 阅读

Mysql入门系列:MYSQL解决方案随笔

 2006-12-31 10:46:19 来源:WEB开发网   
核心提示: 这里有一个问题要引起注意,此输出列出了学生的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 是强制性的,用来防止在以下客户机会话生命周期之后继续存在:

上一页  1 2 3 4 5 6  下一页

Tags:Mysql 入门 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接