第2个回答 2009-03-17
以下对ORACLE,SQL SERVER等都适用:
自然连接(列名相同,只选相同列名下两边值相等的行):
SELECT * FROM STUDENT A NATURAL JOIN SCORE B
内连接(列名不一定相同,只选满足ON条件的行):
SELECT * FROM STUDENT A INNER JOIN SCORE B ON A.SNO = B.SNO
左外连接(列名不一定相同,只选满足ON条件的行和左表的全部,右表填充空值):
SELECT * FROM STUDENT A LEFT OUTER JOIN SCORE B ON A.SNO = B.SNO
右外连接(列名不一定相同,只选满足ON条件的行和右表的全部,左表填充空值):
SELECT * FROM STUDENT A RIGHT OUTER JOIN SCORE B ON A.SNO = B.SNO
全外连接(列名不一定相同,只选满足ON条件的行和两边表的全部,无匹配的全部填充空值)
SELECT * FROM STUDENT A FULL OUTER JOIN SCORE B ON A.SNO = B.SNO
全连接(笛卡尔积,所有行和所有行交叉组合形成新表)
SELECT * FROM STUDENT A CROSS JOIN SCORE B