天天看点

sql语句:连接表

(Cartesian join)笛卡尔连接:表1的每一行同表2的每一行结合做为一条记录。这样的查询将返回(表1行数)X(表2行数)条记录。这样的连接没有什么用户只是说明了所有连接是把表进行组合的。

(equi join)相等连接:一般用在表间有相同属性的列。如有员工表和员工工资表,两个表中都有员工号这一列,现在要查询所有员工的姓名,年龄,工资。从笛卡尔连接中可以推出在笛卡尔连接的基础上取出员工表中员工号同工资表中员工号相同的行即可。表如下:

EMPLOYEE_TABLE EMPLOYEE_PAY_TABLE
employee_id employee_id
last_name salary
first_name department
middle_name supervisor
marital_status

则查询语句可以写成:SELECT  first_name,last_name ,salary FROM employee a,employee_pay b  WHERE a.employee_id=b.employee_id

这个查询的结果就包含了所有员工的情况,如要查询特定员工的情况,很明显可以在这个查询的结果上获得,查询语句为:SELECT  first_name,last_name ,salary FROM employee a,employee_pay b  WHERE a.employee_id=b.employee_id AND first_name='haha'