sql关联查询

先建两张表

在这里插入图片描述
在这里插入图片描述

INNER JOIN
select * from bookCategory 
inner join book on bookCategory.id=book.category_id_FK;
/*
现在实际中比较少用外键,在表中定义一个属性(比如:category_id_FK用categoryid替代),但不把其置位外键 
select k.* from bookCategory b left join book k on b.id=k.categoryid where b.id=1;
*/
查询结果:
+----+------------+-------------------+-------------------------+
| id | name       | name              | author                  |
+----+------------+-------------------+-------------------------+
|  4 | Go书籍     | Go语言编程        | 许式伟                  |
|  2 | java书籍   | java编程          | 布鲁斯埃克尔            |
|  1 | iOS数据    | Objective-C编程   |  [] Aaron Hillegass   |
+----+------------+-------------------+-------------------------+
LEFT JOIN
LEFT JOIN产生表1的完全集,而2表中匹配的则有值,没有匹配的则以null值取代
select * from book left join bookCategory 
on book.category_id_FK=bookCategory.id;

在这里插入图片描述

RIGHT JOIN
right join产生表2的完全集,而1表中匹配的则有值,没有匹配的则以null值取代
select * from book right join bookCategory on book.category_id_FK=bookCategory.id;

在这里插入图片描述

ps:大神们说少用外键,
外键不好维护
有时候数据有异常你需要删数据或者重建数据,但是有外键就没办法直接删了,
特么的还要吧其他表的引用给先删了,
如果这个表还有另外的外键还得再先删上一个表,这样会吧人搞死
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值