2

所以我得到了 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
4

1 回答 1

4

一个简单的INNER JOIN就可以了。

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

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

于 2012-12-25T02:21:55.777 回答