電子工業出版社 JSHING HOUSE DF ELECTRONCS INDSTE 此例属于自连接查询,此查询涉及 authors表与其自身的连接,因此 authors表以两种角 色出显示。要区分这两个角色,必须在FROM子句中为 authors表提供两个不同的别名al和 a2)。 WHERE a1.au_id<>a2.auid子句是为了防止作者与自身匹配,而在查询结果中出现相 同的行 【例630】在样例数据库pubs中,对表 publishers和 authors以city列值相等为条件做 左外连接查询。 USE pubs ECT p pub name, p city, a au fname, a au lname FROM publishers As p LEFT OUTER JOiN authors As a ON p. city a city ORDER BY pub 运行结果: pub_name city fname au inam Algodata Infosystems Berkeley Cheryl Carson Algodata Infosystems Berkeley Abraham Bennet binnet Washington NULL NULL Five Lake lishing Chi GGG&G chen NULL NULL Lucerne Publishing NULL New Moon book Boston NULL Ramona publishers Dalla NULL Scootney Books New York (所影响的行数为9行) 此例中,使用了左外连接查询,所以连接左边的 publisher表的所有记录都显示出来了, 尽管 publishers有些记录在从表中没与连接条件匹配的项。不匹配的行相对应的从表的行的 列位置被填上NULL值 【例6.31】在样例数据库pubs中,对表 publishers和 authors以city列值相等为条件做 右外连接查询。 se pubs SELECt p pub name, p city, a au fname, a au Iname FROM publishers As p RIGHT OUTER Join authors as a oN p. city aci ORDER BY pub_name 运行结果 pub_name cIty au fname au lname NULL NULL White此例属于自连接查询,此查询涉及 authors 表与其自身的连接,因此 authors 表以两种角 色出显示。要区分这两个角色,必须在 FROM 子句中为 authors 表提供两个不同的别名(a1 和 a2)。WHERE a1.au_id<>a2.au_id 子句是为了防止作者与自身匹配,而在查询结果中出现相 同的行。 【例 6.30】在样例数据库 pubs 中,对表 publishers 和 authors 以 city 列值相等为条件做 左外连接查询。 USE pubs SELECT p.pub_name, p.city, a.au_fname, a.au_lname FROM publishers AS p LEFT OUTER JOIN authors AS a ON p.city = a.city ORDER BY pub_name 运行结果: pub_name city au_fname au_lname ---------------------------------------- -------------------- Algodata Infosystems Berkeley Cheryl Carson Algodata Infosystems Berkeley Abraham Bennet Binnet & Hardley Washington NULL NULL Five Lakes Publishing Chicago NULL NULL GGG&G M 黱 chen NULL NULL Lucerne Publishing Paris NULL NULL New Moon Books Boston NULL NULL Ramona Publishers Dallas NULL NULL Scootney Books New York NULL NULL (所影响的行数为 9 行) 此例中,使用了左外连接查询,所以连接左边的 publisher 表的所有记录都显示出来了, 尽管 publishers 有些记录在从表中没与连接条件匹配的项。不匹配的行相对应的从表的行的 列位置被填上 NULL 值 【例 6.31】在样例数据库 pubs 中,对表 publishers 和 authors 以 city 列值相等为条件做 右外连接查询。 USE pubs SELECT p.pub_name, p.city, a.au_fname, a.au_lname FROM publishers AS p RIGHT OUTER JOIN authors AS a ON p.city = a.city ORDER BY pub_name 运行结果: pub_name city au_fname au_lname ---------------------------------------- -------------------- --- NULL NULL Johnson White