相关文章推荐
发财的蚂蚁  ·  python ...·  1 年前    · 
还单身的上铺  ·  MICROSOFT Access SQL) ...·  1 年前    · 
长情的风衣  ·  Task.Run 方法 ...·  1 年前    · 
飞翔的海龟  ·  system.currenttimemill ...·  1 年前    · 

笛卡尔积连接就是实现跨表查询的一种方式。

select article.id as id,article.title as title,article.state as state,article_cate.title as cate from article,article_cate where article.cate_id=article_cate.id
二、内连接 
 

项目中使用比较多的是内连接来进行跨表查询。内连接主要是加入了INNER JOIN和ON两个关键字。

select article.id as id,article.title as title,article.state as state,article_cate.title as cate from article INNER JOIN article_cate on article.cate_id = article_cate.id; 
 

其他方法:使用IN来进行查询,例如:张三选修的课程id对应的课程名称是什么,我们首先看下数据表的结构:

  • lesson表

MySQL之跨表查询与索引_数据库_03

  • student表

MySQL之跨表查询与索引_内连接_04

  • lesson_student表

MySQL之跨表查询与索引_内连接_05

查询张三选修的课程的名称

select * from lesson where id in (select lessonId from lesson_student where studentId=1);
 

查询哪些学生选修了Java程序设计

select * from student where id in (select studentId from lesson_student where lessonId=2);
三、MySQL索引 
 

当查询海量数据的时候,通过索引可以增加查询的效率,极大的降低查找的时间。

给name创建索引名为index_name。

create index index_name on student(name);  
  1. 查看索引
show index from student;
  1. 删除索引
drop index index_name on student;
  1. 创建唯一索引
create unique index index_name on student(name);
 

我们也可以通Navicat等可视化工具来设置索引,通过右键选择某个数据表,选择设计表,然后添加索引。