关于sql的关联查询、删除与子查询、删除
2014-07-02 12:23
176 查看
首先我有三张相互关联的数据库表分别是
role_table(角色表)、user_table(用户表)、blog_table(博客表)关联信息如下,现在我需要对三张表进行关联查询
一、子查询(查询角色为“学生”的所有博客)
二、使用JOIN关联查询(查询角色为“学生”的所有博客)
两级关联查询(查询名字为“lihua”的博客信息)
三级关联查询(查询角色为“学生”的所有博客)
关联删除
一、删除角色名称为“学生”的user信息
role_table(角色表)、user_table(用户表)、blog_table(博客表)关联信息如下,现在我需要对三张表进行关联查询
一、子查询(查询角色为“学生”的所有博客)
SELECT * FROM blog_table WHERE userId IN (SELECT id FROM user_table WHERE roleId IN (SELECT id FROM role_table WHERE roleName = '学生'));这种查询简单 但是很耗时
二、使用JOIN关联查询(查询角色为“学生”的所有博客)
两级关联查询(查询名字为“lihua”的博客信息)
SELECT b.* FROM blog_table b INNER JOIN user_table u ON u.id = b.userId WHERE u.userName='Lihua';
三级关联查询(查询角色为“学生”的所有博客)
SELECT b.* FROM blog_table b INNER JOIN user_table u ON u.id = b.userId JOIN role_table r ON r.id = u.roleId WHERE r.roleName="学生";使用关联查询可以大大加快查询速度。但关联表最好不要超过三张,否则容易降低其效率
关联删除
一、删除角色名称为“学生”的user信息
DELETE u FROM user_table u INNER JOIN role_table r ON r.id = u.roleId WHERE r.roleName = '学生';二、删除角色名称为“学生”的博客信息
DELETE b FROM blog_table b INNER JOIN user_table u ON u.id = b.userId JOIN role_table r ON r.id = u.roleId WHERE r.roleName='学生';
相关文章推荐
- 关于hibernate纯sql查询返回结果集的问题(hbm.xml中不写多表关联)
- 关于sql查询/删除重复记录的事
- SQL练习1关于插入删除,修改,单表查询
- 关于查询、删除重复记录的SQL操作
- 关于hibernate纯sql查询返回结果集的问题(hbm.xml中不写多表关联)
- 关于hibernate纯sql查询返回结果集的问题(hbm.xml中不写多表关联)
- 关于hibernate纯sql查询返回结果集的问题(hbm.xml中不写多表关联)
- 关于sql查询/删除重复记录的事
- 步步为营VS 2008 + .NET 3.5(8) - DLINQ(LINQ to SQL)之面向对象的添加、查询、更新和删除
- 求助:关于一个查询的SQL语句,请高人指点如何实现,谢谢!
- 关于SQL Server SQL语句查询分页数据的解决方案
- 关于sql查询语句 的一个问题
- 步步为营VS 2008 + .NET 3.5(8) - DLINQ(LINQ to SQL)之面向对象的添加、查询、更新和删除
- 步步为营VS 2008 + .NET 3.5(10) - DLINQ(LINQ to SQL)之调用存储过程的添加、查询、更新和删除
- 步步为营VS 2008 + .NET 3.5(9) - DLINQ(LINQ to SQL)之执行SQL语句的添加、查询、更新和删除
- 步步为营VS 2008 + .NET 3.5(10) - DLINQ(LINQ to SQL)之调用存储过程的添加、查询、更新和删除
- 关于sql多条件查询[转]
- 步步为营VS 2008 + .NET 3.5(9) - DLINQ(LINQ to SQL)之执行SQL语句的添加、查询、更新和删除
- 步步为营VS 2008 + .NET 3.5(9) - DLINQ(LINQ to SQL)之执行SQL语句的添加、查询、更新和删除
- 关于判断sql查询记录集为空的问题