1、笛卡尔积与连接查询l连接查询 (左连接 右连接 内连接)笛卡尔乘积集合特性 : 确定性 无序性 唯一性一张表可以看做是一个集合,每行数据相当于集合的一个元素Union 时 去掉重复 原理 就是集合元素的唯一性表中存在完全相同的两行 是因为 表内部 存在 rowid进行区分笛卡尔积如果 aA, bBA*B = ( a, b);例如 A=(1,2,3,4,5);B =(11,12);那么 A*B(1,11), (2,11), (3,11), (4,11), (5,11),(1,12), (2,12), (3,12), (4,12), (5,12);A 有 M 个元素 B 有 N 个元素那么 A*B
2、 有 M*N 个元素同理表 A 有 M 行 表 B 有 N 行那么 A*B 有 M*N 行例如:ta tb 两表笛卡尔积通过分析可以看出tb 表的 a b c d 每个分别和 ta 的 a b c d 组合一遍左连接1 连上表2 连接条件例如:selectgood_id,goods.cat_id,goods_name,shop_pricefromgoods left join categoryon good.cat_id = category.cat_id;字段名重复那么需要加表前缀,否则会报错;error 1052(23000) column * in field list is ambig
3、uous最后两行可以看 作是一张表。左连接语法:select 列 1,列 2,列 Nfromtable 1 left join table 2on table 1 列 = table 2 列;on 后面的条件只要是条件就可以 可以不是等于 但是常用是等于。将 from 后面的当做一个普通表看待。右连接语法:select 列 1,列 2,列 Nfromtable 1 right join table 2on table 1 列 = table 2 列;内连接 innerselect 列 1,列 2,列 Nfromtable 1 inner join table 2on table 1 列 = table 2 列;