表联结
两个表全相行,行的角度看,就是两个表的每一行的笛卡尔积。而从列的角度看,就是列的拼接。
全相乘的结果集,可以从中取出需要的部分列,这里的公共的列要使用全名:表名.列名 。
ambiguous:模糊不清的。
一个连接的例子:两个表相乘联查效率比较低
select goods_id,minigoods.cat_id,goods_name,category.cat_id,cat_name
from minigoods,category
where minigoods.cat_id=category.cat_id;
左连接: 效率较高
一张表在左,一张表在右。两张表通过一定的关系来筛选右表的行。
左表 left join 右表 on 条件;
查询出来的是一个结果集形式,可以把这个结果集当成一张表,可以再对这张虚拟表查询,能使用全部5种查询子句。
取出第4个栏目下的商品和商品分类名
select goods_id,goods_name,goods_num,shop_price,cat_name
from
goods left join category
on goods.cat_id=category.cat_id
where goods.cat_id=4;
左连接,右连接,内连接三者的区别
左右连接可以呼唤。a left join b 效果, 和 b rig