如何将2个表与一个请求合并

时间:2012-12-25 02:20:36

标签: mysql sql

所以我得到了2张具有以下结构的表:

CREATE TABLE courses(
  id bigint not null auto_increment,
  title varchar(255) default '',
  primary key(id)
);

CREATE TABLE course_dates(
  id bigint not null auto_increment,
  course_id bigint,
  `date` date,
  key idx(course_id,date),
  primary key(id)
);

所以课程存储在第一个表格中,课程日期存储在第二个表格中(每个课程可以有无限数量的日期)

我需要使用一个查询一次获取所有课程行(及其所有日期)

例如,如果我有包含此类数据的表:

courses:
id | title
1  | course#1
2  | course#2

course_dates:
id | course_id | date
1  | 1         | 2012-12-25
2  | 1         | 2012-12-27
3  | 1         | 2012-12-31
4  | 2         | 2012-12-23
5  | 2         | 2012-12-30

然后我需要这样的结果行:

id | course_id | date       | title
1  | 1         | 2012-12-25 | course#1
2  | 1         | 2012-12-27 | course#1
3  | 1         | 2012-12-31 | course#1
4  | 2         | 2012-12-23 | course#2
5  | 2         | 2012-12-30 | course#2

1 个答案:

答案 0 :(得分:4)

一个简单的INNER JOIN即可。

SELECT  b.*, a.title
FROM    Courses a
        INNER JOIN Courses_Dates b
            ON a.id = b.Course_ID

要了解有关联接的更多信息,请参阅以下链接