1.假设现在有2个表,employee 和 department。用select 语句查询它们具体内容,如下:

mysql> select * from department;
+------+-----------+--------------+-------------+
| d_id | d_name    | function_    | address     |
+------+-----------+--------------+-------------+
| 1001 | 科研部    | 研发产品     | 3号楼5层    |
| 1002 | 生产部    | 生产产品     | 5号楼1层    |
| 1003 | 销售部    | 策划销售     | 5号楼1层    |
+------+-----------+--------------+-------------+
mysql> select * from employee;
+-----+------+--------+------+------+--------------------+
| num | d_id | name   | age  | sex  | homeaddr           |
+-----+------+--------+------+------+--------------------+
|   1 | 1001 | 张三   |   26 | 男   | 北京市海淀区       |
|   2 | 1002 | 李四   |   24 | 女   | 北京市昌平区       |
|   3 | 1003 | 王五   |   25 | 男   | 湖南省长沙市       |
|   4 | 1004 | Aric   |   15 | 男   | England            |
+-----+------+--------+------+------+--------------------+
4 rows in set (0.00 sec)

2.现在要实现内连查询。实现内联查询的条件是两个或者多个表有意义相同的字段。例如,上述两个表的department和employee都有d_id,都表示部门编号(这两个字段的名称也可以不一样),那么现在执行内联查询,

mysql> select department.d_id,d_name,function_,address,num,age from department,employee where department.d_id = employee.d_id;
+------+-----------+--------------+-------------+-----+------+
| d_id | d_name    | function_    | address     | num | age  |
+------+-----------+--------------+-------------+-----+------+
| 1001 | 科研部    | 研发产品     | 3号楼5层    |   1 |   26 |
| 1002 | 生产部    | 生产产品     | 5号楼1层    |   2 |   24 |
| 1003 | 销售部    | 策划销售     | 5号楼1层    |   3 |   25 |
+------+-----------+--------------+-------------+-----+------+
3 rows in set (0.00 sec)

自己体会:

1.其实内联查询就是利用where语句,查询满足两个字段相等(这两个字段必须意义完全相同)的时候的各个字段的值。

2.当两个字段的值相同时候,内联查询才能查出这个值。外联查询无论字段值相同与否都可以查出来。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐