第十章 外联接,自联接与联合

 

第十章    外联接,自联接与联合
一.外联接
           左联接:LEFT OUTER JOIN;匹配左表中的每一行及由表中符合条件的行。
/*左外联接*/
SELECT g.girl, t.toy FROM girls g LEFT OUTER JOIN toys t ON g.toy_id = t.toy_id;
说明:内联接与外联接的区别在于,外联接一定会提供数据行,无论该行能否在另一个表中找到相匹配的行。
/*右外联接*/
SELECT g.girl, t.toy FROM toys t RIGHT OUTER JOIN girls g ON g.toy_id = t.toy_id;
说明:右外联接也是根据左表来评估右表的。
二.自联接
        /*自联接*/
SELECT c1.name, c2.name AS boss FROM clown_info c1 INNER JOIN clown_info c2 ON c1.boss_id = c2.id;
自联接能把单一表当成两张具有完全相同信息的表来进行查询。
三.联合
/*联合*/
SELECT title FROM job_current UNION SELECT title FROM job_desired UNION SELECT title FROM job_listings;
说明:
a.       每个SELECT语句中列的数量必须一致。不可以由第一条语句选取两列,由其他语句却只选取一列。
b.      每个SELECT语句包含的表达式与统计函数也必须相同。
c.       SELECT语句的顺序不重要,不会改表结果。
d.      SQL默认会清除联合结果中的重复值。
e.      列的类型必须相同或者可以相互转换。
f.        如果处于某些原因而需要看到重复数据,可以使用UNION ALL运算符。这个运算符返回每个相符的记录,而不只是没有重复的记录。

本文出自 “墨痕” 博客,转载请与作者联系!

你可能感兴趣的:(职场,休闲,联合,表)