1.概述
对于数据库的连接,笔者总结了五种。即:笛卡尔积,隐式链接,内连接,左外连接,右外连接。由于今日编写项目时,两表之间的连接有所生疏,故而总结一下此类语法。
1.1 笛卡尔积
简介:t,p分别是type和product表的表的简称或别名。
/* 笛卡尔积 */
SELECT p.*,t.* FROM product p, TYPE t;
显示结果:
此内容是臃肿的,没有进行过选择的。product表中的每个选项都与type表中的每个类型均匹配了一遍。
1.2 隐形连接
/*链接查询*/
/*隐形连接*/
/*商品的编号等于类型的主键,条件成立才会放到结果集*/
SELECT p.*,t.* FROM product p, TYPE t WHERE p.`t_id` = t.`t_id`;
显示结果:
介绍:再此增加了条件约束的查询中,product表中的每个元素均得到了正确的匹配选择。
1.3 内连接
/*内连接*/
/*条件成立才会放到结果集*/
SELECT p.*,t.* FROM product p
INNER JOIN TYPE t
ON p.`t_id` = t.`t_id`;
结果显示:
介绍:效果与隐形连接相同,条件成立才会放出结果集!
1.4 左连接
/*左连接*/
/*左表当作主表,右表匹配左表, 有则放到结果集,没有就用null填充*/
SELECT p.*,t.* FROM product p
LEFT JOIN TYPE t
ON p.`t_id` = t.`t_id`;
1.5 右连接
/*右连接*/
/*右表当作主表,左表匹配右`type`表, 有则放到结果集,没有就用null填充*/
SELECT p.*,t.* FROM product p
RIGHT JOIN TYPE t
ON p.`t_id` = t.`t_id`;
1.6 总结
由于设计的数据库外键的设置,左连接和右连接的显示结果是相同的,无法演示出匹配表数据为空的结果,故未设置相关图片。