笛卡尔集
当我们对多表进行联查时,我们可以得到 表1 * 表2 的记录数。
例子:
表1的‘name’字段和表2的‘name’字段关联
select * from t1,t2 where t1.name = t2.username
补充:
如果两个字段不一样,也可不带表名作为前缀。
自连接
直接通过例子来看
例子:
同一张表,查询员工对应的上司。
思路:
1)首先获取这个员工对应的上司编号;
2)通过编号找到上司
实现1(子查询):
select * from tbl_name where 员工编号 =
(select 上司编号 from tbl_name where 员工名字 = 'tim');
实现2(多表形式查询):
select * from tal_name as员工表, tal_name as上司表
where 员工表.上司编号 = 上司表.员工编号
and 员工名字 = 'tim'