﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-朝着自己微笑的小胖-随笔分类-database</title><link>http://www.blogjava.net/shijian/category/46849.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 29 Mar 2012 08:19:24 GMT</lastBuildDate><pubDate>Thu, 29 Mar 2012 08:19:24 GMT</pubDate><ttl>60</ttl><item><title>歪歪之数据库</title><link>http://www.blogjava.net/shijian/archive/2010/11/07/337464.html</link><dc:creator>石建同学</dc:creator><author>石建同学</author><pubDate>Sun, 07 Nov 2010 09:53:00 GMT</pubDate><guid>http://www.blogjava.net/shijian/archive/2010/11/07/337464.html</guid><wfw:comment>http://www.blogjava.net/shijian/comments/337464.html</wfw:comment><comments>http://www.blogjava.net/shijian/archive/2010/11/07/337464.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shijian/comments/commentRss/337464.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shijian/services/trackbacks/337464.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; ">题记：主要记录同学分享的关于数据库设计方面的内容，思考过一点，记录下来。<br />
<br />
一、从需求开始，考虑数据库的设计，且结合具体数据库特性<br />
<br />
&nbsp;&nbsp;一个论坛，要求显示帖子的总条数，对于mysql、innodb引擎；上线前期完全没有问题，当人气积累，帖子达到千万级别时，此时性能的问题就会显现出来。好的设计，是需求阶段就要考虑的。对于我，这是一个思想概念上的转变。<br />
&nbsp;&nbsp;但引擎如果换成myisam，就算数据达到亿的级别，&#8220;统计总数&#8221;这样的问题还会存在吗 ？不会，myisam自身就会维护总数信息。因此设计，必须结合具体的数据库的特性来做，不能以一概全。<br />
<br />
二、应该遵循原则 （未验证）<br />
<br />
&nbsp;&nbsp;1.小结果集驱动大结果集。理由：mysql的连接查询原理 ？<br />
&nbsp;&nbsp;2.尽可能在索引中完成排序。理由：索引本身就是有序的<br />
&nbsp;&nbsp;3.只取自己需要的column ？<br />
&nbsp;&nbsp;4.避免复杂的连接查询和子查询。<br />
&nbsp;&nbsp;5.适当的数据冗余.理由：帖子表&amp;用户表，如果帖子表拥有username，则每次帖子的显示是不需要连接查询获取username。&nbsp;<br />
&nbsp;&nbsp;6.应用层的cahce机制 ？<br />
<br />
三、概念<br />
<br />
&nbsp;&nbsp;1.垂直拆分：<span style="font-size: 12px; font-family: Arial, sans-serif, Helvetica, Tahoma; line-height: 18px; ">按列进行分割，即把一条记录分开多个地方保存，每个子表的行数相同。</span>帖子表，id、userid、username、content、xxx ...前面4个字段很常用，但是后面xxx等很多字段，不常用，数据量很大。进行垂直拆分，table1字段包含&#8220;id、userid、username、content&#8221;,table2包含&#8220;xxx、...&#8221;等不常用字段。优点：减少io的操作。缺点：如果需要不常用字段信息，需要连表查询。<br />
&nbsp;&nbsp;2.水平拆分：</span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">按记录进分分割，不同的记录分开保存，每个子表的列数相同。比如：淘宝的用户交易数据，根据用户id取模，确定具体的数据存放在那个数据库。水平拆分会给应用带来复杂性。<br />
&nbsp;&nbsp;3<span style="font-family: Simsun; line-height: normal; font-size: 13px; ">.</span>集群：提高系统的可用性。分库的节点引入多台机器，每台机器保 存的数据是一样，负载均衡在多台机器。如何均衡、探测机器的可用性，是新的问题 ？<br />
&nbsp;&nbsp;4<span style="font-family: Simsun; line-height: normal; font-size: 13px; ">.</span>主备：一般的互联网应用中，<strong style="font-weight: bold; ">经过一些数据调查得出结论，读/写的比例大概在 10：1左右。为什么要读写分离：</strong>写操作涉及到锁的问题，不管是行锁还是表锁还是块锁，在大并发的情况下，效率很低。写操作集中在一个节点上，而读操作其其他 的N个节点上进行。读写分离引入的新问题：比如我的Master上的数据怎样和集群中其它Slave机器保持数据的同步和一致呢?<br />
<br />
<br />
<br />
<br />
</span><img src ="http://www.blogjava.net/shijian/aggbug/337464.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shijian/" target="_blank">石建同学</a> 2010-11-07 17:53 <a href="http://www.blogjava.net/shijian/archive/2010/11/07/337464.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sql连接查询</title><link>http://www.blogjava.net/shijian/archive/2010/11/03/336935.html</link><dc:creator>石建同学</dc:creator><author>石建同学</author><pubDate>Wed, 03 Nov 2010 07:36:00 GMT</pubDate><guid>http://www.blogjava.net/shijian/archive/2010/11/03/336935.html</guid><wfw:comment>http://www.blogjava.net/shijian/comments/336935.html</wfw:comment><comments>http://www.blogjava.net/shijian/archive/2010/11/03/336935.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shijian/comments/commentRss/336935.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shijian/services/trackbacks/336935.html</trackback:ping><description><![CDATA[<span style="font-family: sans-serif; font-size: 13px; line-height: 19px; ">请参考：<a href="http://en.wikipedia.org/wiki/Join_(SQL)#Sample_tables">http://en.wikipedia.org/wiki/Join_(SQL)#Sample_tables</a><br />
<br />
<h2 style="padding-right: 0px; padding-left: 0px; font-weight: normal; font-size: 19px; padding-bottom: 0.17em; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; text-transform: uppercase; color: black; padding-top: 0.5em; border-bottom-color: #aaaaaa; border-bottom-width: 1px; border-bottom-style: solid; font-family: 'trebuchet ms', '', 'lucida grande', '', verdana, arial, sans-serif; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; width: auto; "><span class="mw-headline" id="Outer_joins">inner JOINS</span></h2>
&nbsp;&nbsp;An&nbsp;<strong>inner join</strong>&nbsp;is the most common join operation used in applications and can be regarded as the <span style="color: red; ">default join-type</span>. Inner join creates a new result table by combining column values of two tables (A and B) based upon the join-predicate. The query compares each row of A with each row of B to find all pairs of rows which satisfy the join-predicate. When the join-predicate is satisfied, column values for each matched pair of rows of A and B are combined into a result row. <span style="color: red; ">The result of the join can be defined as the outcome of first taking the&nbsp;<a href="http://en.wikipedia.org/wiki/Cartesian_product" title="Cartesian product" style="text-decoration: none; color: #0645ad; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; ">Cartesian product</a>&nbsp;(or cross-join) of all records in the tables (combining every record in table A with every record in table B)—then return all records which satisfy the join predicate.</span> Actual SQL implementations normally use other approaches like a&nbsp;<a href="http://en.wikipedia.org/wiki/Hash_join" title="Hash join" style="text-decoration: none; color: #0645ad; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; ">Hash join</a>&nbsp;or a&nbsp;<a href="http://en.wikipedia.org/wiki/Sort-merge_join" title="Sort-merge join" style="text-decoration: none; color: #0645ad; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; ">Sort-merge join</a>&nbsp;where possible, since computing the Cartesian product is very inefficient.<br />
<br />
&nbsp;&nbsp;注意：innner查询（默认的连接查询方式），是先查询&#8220;<a href="http://en.wikipedia.org/wiki/Cartesian_product" title="Cartesian product" style="text-decoration: none; color: #0645ad; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; ">Cartesian</a>&#8221;生成中间表，再根据where条件筛选结果；但此方法非常低效，SQL具体的实现可能是&nbsp;</span><span style="font-family: sans-serif; font-size: 13px; line-height: 19px; "><a href="http://en.wikipedia.org/wiki/Hash_join" title="Hash join" style="color: #0645ad; text-decoration: none; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; ">Hash join</a>&nbsp;or a&nbsp;<a href="http://en.wikipedia.org/wiki/Sort-merge_join" title="Sort-merge join" style="color: #0645ad; text-decoration: none; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; ">Sort-merge join</a>&nbsp;。<br />
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="font-family: sans-serif; font-size: 13px; line-height: 19px; ">One can further classify inner joins as equi-joins, as natural joins, or as cross-joins.<br />
<br />
<span style="line-height: normal; font-family: monospace, sans-serif; ">
<pre class="de1" style="font-family: monospace, sans-serif !important; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: white; border-right-color: white; border-bottom-color: white; border-left-color: white; color: black; background-color: initial; line-height: normal; font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; vertical-align: top; background-position: initial initial; background-repeat: initial initial; "><span class="kw1" style="color: #993333; font-weight: bold; ">SELECT</span> <span class="sy0" style="color: #66cc66; ">*</span>
<span class="kw1" style="color: #993333; font-weight: bold; ">FROM</span> employee <span class="kw1" style="color: #993333; font-weight: bold; ">INNER</span> <span class="kw1" style="color: #993333; font-weight: bold; ">JOIN</span> department
<span class="kw1" style="color: #993333; font-weight: bold; ">ON</span> employee<span class="sy0" style="color: #66cc66; ">.</span>DepartmentID <span class="sy0" style="color: #66cc66; ">=</span> department<span class="sy0" style="color: #66cc66; ">.</span>DepartmentID;
<span style="font-family: sans-serif; line-height: 19px; white-space: normal; ">The following example shows a query which is equivalent to the one from the previous example.</span>
<span style="line-height: normal; white-space: normal; ">
<pre class="de1" style="font-family: monospace, sans-serif !important; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: white; border-right-color: white; border-bottom-color: white; border-left-color: white; color: black; background-color: initial; line-height: normal; font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; vertical-align: top; background-position: initial initial; background-repeat: initial initial; "><span class="kw1" style="color: #993333; font-weight: bold; ">SELECT</span> <span class="sy0" style="color: #66cc66; ">*</span>
<span class="kw1" style="color: #993333; font-weight: bold; ">FROM</span>   employee<span class="sy0" style="color: #66cc66; ">,</span> department
<span class="kw1" style="color: #993333; font-weight: bold; ">WHERE</span>  employee<span class="sy0" style="color: #66cc66; ">.</span>DepartmentID <span class="sy0" style="color: #66cc66; ">=</span> department<span class="sy0" style="color: #66cc66; ">.</span>DepartmentID;
</pre>
</span></pre>
</span>
<h2 style="color: black; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #aaaaaa; width: auto; font-size: 19px; background-position: initial initial; background-repeat: initial initial; "><span class="mw-headline" id="Outer_joins">Outer joins</span></h2>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; ">&nbsp;&nbsp;An&nbsp;<strong>outer join</strong>&nbsp;does not require each record in the two joined tables to have a matching record. The joined table retains each record—even if no other matching record exists. Outer joins subdivide further into left outer joins, right outer joins, and full outer joins, depending on which table(s) one retains the rows from (left, right, or both).<br />
<br />
</p>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; ">Example of a left outer join, with the additional result row italicized:</p>
<div dir="ltr" class="mw-geshi" style="padding-top: 1em; padding-right: 1em; padding-bottom: 1em; padding-left: 1em; border-left-color: #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; text-align: left; ">
<div class="sql source-sql" style="line-height: normal; font-family: monospace; ">
<pre class="de1" style="font-family: monospace, sans-serif !important; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: white; border-right-color: white; border-bottom-color: white; border-left-color: white; color: black; background-color: initial; line-height: normal; font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; vertical-align: top; background-position: initial initial; background-repeat: initial initial; "><span class="kw1" style="color: #993333; font-weight: bold; ">SELECT</span> <span class="sy0" style="color: #66cc66; ">*</span>
<span class="kw1" style="color: #993333; font-weight: bold; ">FROM</span>   employee  <span class="kw1" style="color: #993333; font-weight: bold; ">LEFT</span> <span class="kw1" style="color: #993333; font-weight: bold; ">OUTER</span> <span class="kw1" style="color: #993333; font-weight: bold; ">JOIN</span> department
<span class="kw1" style="color: #993333; font-weight: bold; ">ON</span> employee<span class="sy0" style="color: #66cc66; ">.</span>DepartmentID <span class="sy0" style="color: #66cc66; ">=</span> department<span class="sy0" style="color: #66cc66; ">.</span>DepartmentID;
</pre>
</div>
</div>
<table class="wikitable" style="font-size: 13px; color: black; background-color: #f9f9f9; margin-top: 1em; margin-right: 1em; margin-bottom: 1em; margin-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-collapse: collapse; text-align: center; ">
    <tbody>
        <tr>
            <th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Employee.LastName</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Employee.DepartmentID</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Department.DepartmentName</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Department.DepartmentID</th>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Jones</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">33</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Engineering</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">33</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Rafferty</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">31</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Sales</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">31</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Robinson</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">34</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Clerical</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">34</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Smith</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">34</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Clerical</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">34</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><em>John</em></td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><span style="color: white; background-color: gray; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; font-size: 8px; font-family: monospace; "><em style="font-style: normal; ">NULL</em></span></td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><span style="color: white; background-color: gray; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; font-size: 8px; font-family: monospace; "><em style="font-style: normal; ">NULL</em></span></td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><span style="color: white; background-color: gray; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; font-size: 8px; font-family: monospace; "><em style="font-style: normal; ">NULL</em></span></td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Steinberg</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">33</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Engineering</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">33<br />
            <br />
            </td>
        </tr>
    </tbody>
</table>
<br />
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; ">Example right outer join, with the additional result row italicized:</p>
<div dir="ltr" class="mw-geshi" style="padding-top: 1em; padding-right: 1em; padding-bottom: 1em; padding-left: 1em; border-left-color: #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; text-align: left; ">
<div class="sql source-sql" style="line-height: normal; font-family: monospace; ">
<pre class="de1" style="font-family: monospace, sans-serif !important; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: white; border-right-color: white; border-bottom-color: white; border-left-color: white; color: black; background-color: initial; line-height: normal; font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; vertical-align: top; background-position: initial initial; background-repeat: initial initial; "><span class="kw1" style="color: #993333; font-weight: bold; ">SELECT</span> <span class="sy0" style="color: #66cc66; ">*</span>
<span class="kw1" style="color: #993333; font-weight: bold; ">FROM</span>   employee <span class="kw1" style="color: #993333; font-weight: bold; ">RIGHT</span> <span class="kw1" style="color: #993333; font-weight: bold; ">OUTER</span> <span class="kw1" style="color: #993333; font-weight: bold; ">JOIN</span> department
<span class="kw1" style="color: #993333; font-weight: bold; ">ON</span> employee<span class="sy0" style="color: #66cc66; ">.</span>DepartmentID <span class="sy0" style="color: #66cc66; ">=</span> department<span class="sy0" style="color: #66cc66; ">.</span>DepartmentID;
</pre>
</div>
</div>
<table class="wikitable" style="font-size: 13px; color: black; margin-top: 1em; margin-right: 1em; margin-bottom: 1em; margin-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-collapse: collapse; text-align: center; background-color: #f9f9f9; ">
    <tbody>
        <tr>
            <th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Employee.LastName</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Employee.DepartmentID</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Department.DepartmentName</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Department.DepartmentID</th>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Smith</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">34</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Clerical</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">34</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Jones</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">33</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Engineering</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">33</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Robinson</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">34</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Clerical</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">34</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Steinberg</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">33</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Engineering</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">33</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Rafferty</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">31</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Sales</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">31</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><span style="color: white; background-color: gray; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; font-size: 8px; font-family: monospace; "><em style="font-style: normal; ">NULL</em></span></td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><span style="color: white; background-color: gray; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; font-size: 8px; font-family: monospace; "><em style="font-style: normal; ">NULL</em></span></td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><em>Marketing</em></td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><em>35<br />
            <br />
            </em></td>
        </tr>
    </tbody>
</table>
<br />
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; ">Example full outer join: （mysql is not support）</p>
<div dir="ltr" class="mw-geshi" style="padding-top: 1em; padding-right: 1em; padding-bottom: 1em; padding-left: 1em; border-left-color: #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; text-align: left; ">
<div class="sql source-sql" style="line-height: normal; font-family: monospace; ">
<pre class="de1" style="font-family: monospace, sans-serif !important; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: white; border-right-color: white; border-bottom-color: white; border-left-color: white; color: black; background-color: initial; line-height: normal; font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; vertical-align: top; background-position: initial initial; background-repeat: initial initial; "><span class="kw1" style="color: #993333; font-weight: bold; ">SELECT</span> <span class="sy0" style="color: #66cc66; ">*</span>
<span class="kw1" style="color: #993333; font-weight: bold; ">FROM</span>   employee
<span class="kw1" style="color: #993333; font-weight: bold; ">FULL</span> <span class="kw1" style="color: #993333; font-weight: bold; ">OUTER</span> <span class="kw1" style="color: #993333; font-weight: bold; ">JOIN</span> department
<span class="kw1" style="color: #993333; font-weight: bold; ">ON</span> employee<span class="sy0" style="color: #66cc66; ">.</span>DepartmentID <span class="sy0" style="color: #66cc66; ">=</span> department<span class="sy0" style="color: #66cc66; ">.</span>DepartmentID;
</pre>
</div>
</div>
<table class="wikitable" style="font-size: 13px; color: black; background-color: #f9f9f9; margin-top: 1em; margin-right: 1em; margin-bottom: 1em; margin-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-collapse: collapse; text-align: center; ">
    <tbody>
        <tr>
            <th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Employee.LastName</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Employee.DepartmentID</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Department.DepartmentName</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Department.DepartmentID</th>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Smith</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">34</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Clerical</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">34</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Jones</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">33</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Engineering</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">33</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Robinson</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">34</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Clerical</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">34</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><em>John</em></td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><span style="color: white; background-color: gray; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; font-size: 8px; font-family: monospace; "><em style="font-style: normal; ">NULL</em></span></td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><span style="color: white; background-color: gray; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; font-size: 8px; font-family: monospace; "><em style="font-style: normal; ">NULL</em></span></td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><span style="color: white; background-color: gray; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; font-size: 8px; font-family: monospace; "><em style="font-style: normal; ">NULL</em></span></td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Steinberg</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">33</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Engineering</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">33</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Rafferty</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">31</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Sales</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">31</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><span style="color: white; background-color: gray; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; font-size: 8px; font-family: monospace; "><em style="font-style: normal; ">NULL</em></span></td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><span style="color: white; background-color: gray; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; font-size: 8px; font-family: monospace; "><em style="font-style: normal; ">NULL</em></span></td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><em>Marketing</em></td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; "><em>35<br />
            <br />
            </em></td>
        </tr>
    </tbody>
</table>
<br />
<h2 style="color: black; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #aaaaaa; width: auto; font-size: 19px; background-position: initial initial; background-repeat: initial initial; "><span class="mw-headline" id="Self-join">Self-join</span></h2>
A query to find all pairings of two employees in the same country is desired.<br />
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; ">An example solution query could be as follows:</p>
<div dir="ltr" class="mw-geshi" style="padding-top: 1em; padding-right: 1em; padding-bottom: 1em; padding-left: 1em; border-left-color: #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; text-align: left; ">
<div class="sql source-sql" style="line-height: normal; font-family: monospace; ">
<pre class="de1" style="font-family: monospace, sans-serif !important; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: white; border-right-color: white; border-bottom-color: white; border-left-color: white; color: black; background-color: initial; line-height: normal; font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; vertical-align: top; background-position: initial initial; background-repeat: initial initial; "><span class="kw1" style="color: #993333; font-weight: bold; ">SELECT</span> F<span class="sy0" style="color: #66cc66; ">.</span>EmployeeID<span class="sy0" style="color: #66cc66; ">,</span> F<span class="sy0" style="color: #66cc66; ">.</span>LastName<span class="sy0" style="color: #66cc66; ">,</span> S<span class="sy0" style="color: #66cc66; ">.</span>EmployeeID<span class="sy0" style="color: #66cc66; ">,</span> S<span class="sy0" style="color: #66cc66; ">.</span>LastName<span class="sy0" style="color: #66cc66; ">,</span> F<span class="sy0" style="color: #66cc66; ">.</span>Country
<span class="kw1" style="color: #993333; font-weight: bold; ">FROM</span> Employee F<span class="sy0" style="color: #66cc66; ">,</span> Employee S
<span class="kw1" style="color: #993333; font-weight: bold; ">WHERE</span> F<span class="sy0" style="color: #66cc66; ">.</span>Country <span class="sy0" style="color: #66cc66; ">=</span> S<span class="sy0" style="color: #66cc66; ">.</span>Country
<span class="kw1" style="color: #993333; font-weight: bold; ">AND</span> F<span class="sy0" style="color: #66cc66; ">.</span>EmployeeID <span class="sy0" style="color: #66cc66; ">&lt;</span> S<span class="sy0" style="color: #66cc66; ">.</span>EmployeeID
<span class="kw1" style="color: #993333; font-weight: bold; ">ORDER</span> <span class="kw1" style="color: #993333; font-weight: bold; ">BY</span> F<span class="sy0" style="color: #66cc66; ">.</span>EmployeeID<span class="sy0" style="color: #66cc66; ">,</span> S<span class="sy0" style="color: #66cc66; ">.</span>EmployeeID;
</pre>
</div>
</div>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; ">Which results in the following table being generated.</p>
<table class="wikitable" style="font-size: 13px; color: black; margin-top: 1em; margin-right: 5px; margin-bottom: 1em; margin-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-collapse: collapse; text-align: center; float: left; background-color: #f9f9f9; ">
    <caption style="font-weight: bold; ">Employee Table after Self-join by Country</caption>
    <tbody>
        <tr>
            <th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">EmployeeID</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">LastName</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">EmployeeID</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">LastName</th><th style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f2f2f2; text-align: center; ">Country</th>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">123</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Rafferty</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">124</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Jones</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Australia</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">123</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Rafferty</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">145</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Steinberg</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Australia</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">124</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Jones</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">145</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Steinberg</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Australia</td>
        </tr>
        <tr>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">305</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Smith</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">306</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">John</td>
            <td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; ">Germany<br />
            <span style="border-collapse: separate; line-height: 19px;"><span style="border-collapse: collapse; line-height: normal;"><br />
            </span></span></td>
        </tr>
    </tbody>
</table>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<h3 style="color: black; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0.3em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: initial; border-bottom-style: none; border-bottom-color: initial; width: auto; font-size: 17px; background-position: initial initial; background-repeat: initial initial; "><span class="mw-headline" id="Join_algorithms">Join algorithms</span></h3>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; ">Three fundamental algorithms exist for performing a join operation:&nbsp;<a href="http://en.wikipedia.org/wiki/Nested_loop_join" title="Nested loop join" style="text-decoration: none; color: #0645ad; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; ">Nested loop join</a>,&nbsp;<a href="http://en.wikipedia.org/wiki/Sort-merge_join" title="Sort-merge join" style="text-decoration: none; color: #0645ad; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; ">Sort-merge join</a>&nbsp;and&nbsp;<a href="http://en.wikipedia.org/wiki/Hash_join" title="Hash join" style="text-decoration: none; color: #0645ad; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; ">Hash join</a>.</p>
<br />
<br />
<br />
<p>&nbsp;</p>
</span>
<img src ="http://www.blogjava.net/shijian/aggbug/336935.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shijian/" target="_blank">石建同学</a> 2010-11-03 15:36 <a href="http://www.blogjava.net/shijian/archive/2010/11/03/336935.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>