select * from t5 , t6;
select count(*) from t5 , t6;
select * from t5 , t6 where dep_id=1;
这样会出现笛卡尔积反应 , 也就是将两个表格中的数据每一个都强行的拼接在一起
返回数据数量为两个表格条数乘积
inner join -- 内连接
内连接 将两个表格有关联的数据拼接在一起
语法:
select * from 表1 inner join 表2 on 连接条件
-- 左连接
左连接 , 左表所有数据全部查询数来 , 没有对应到的就为null
语法:
select * from 表1 left join 表2 on 连接条件
right join -- 右连接
右连接 , 右表所有数据全部查询数来 , 没有对应到的就为null
语法:
select * from 表1 left join 表2 on 连接条件
select * from country inner join country_role on country.id = country_role.country_id;
-- 注意:条件country.id = country_role.country_id用到的表,都是句子前半句提到的,用其他表就报错
-- select后边的好像也不能超出两个表,如果是一对多,或者多对多就没这种问题,因为就两个表
select country.id,country.country_name,country_role.role_id
from country inner join country_role on country.id = country_role.country_id;
-- 左连接
select * from country left join country_role on country.id = country_role.country_id;
-- 右连接
select country.id,country.country_name,country_role.role_id from country right join country_role on country.id = country_role.country_id;
-- 内连接
select * from country inner join country_role on country.id = country_role.country_id;
-- 注意:条件country.id = country_role.country_id用到的表,都是句子前半句提到的,用其他表就报错
-- select后边的好像也不能超出两个表,如果是一对多,或者多对多就没这种问题,因为就两个表
select country.id,country.country_name,country_role.role_id
from country inner join country_role on country.id = country_role.country_id;
-- 左连接
select * from country left join country_role on country.id = country_role.country_id;
-- 右连接
select country.id,country.country_name,country_role.role_id from country right join country_role on country.id = country_role.country_id;