我有两个表-
章节表
chapter_id | chapter_title
演讲台
lecture_id | chapter_id | lecture_title | lecture_content
我的问题是-我在该章节中插入了多个章节,其中有多个讲座。因此,每一章都遵循。 现在我需要选择一个章节标题,并选择多个演讲标题和演讲内容。
SELECT * FROM `course_chapter`
INNER JOIN course_lecture
ON course_lecture.chapter_id= course_chapter.chapter_id
WHERE course_chapter.course_id=1
我在上面的查询中,根据可用的讲座,同一章显示在多行中,因此需要查询单个章节标题和多个讲座。怎么做?
答案 0 :(得分:1)
您是否希望所有演讲标题和演讲内容都在一行中紧随章节标题之后?如果是,那么您可以尝试使用该查询
SELECT
course_chapter.chapter_title,
tmp.lecture_title,
tmp.lecture_content
FROM course_chapter
JOIN (SELECT
chapter_id,
GROUP_CONCAT(lecture_title SEPARATOR ', ') 'lecture_title',
GROUP_CONCAT(lecture_content SEPARATOR ', ') 'lecture_content'
FROM course_lecture
GROUP BY chapter_id) tmp
ON (tmp.chapter_id = course_chapter.chapter_id)
WHERE course_chapter.chapter_id = 1
答案 1 :(得分:0)
为此使用右连接
尝试以下
SELECT course_lecture.chapter_id, course_chapter.chapter_id, course_lecture.lecture_id, course_lecture.chapter_id, course_lecture.lecture_title, course_lecture.lecture_content FROM `course_chapter` right join course_lecture on course_lecture.chapter_id=course_chapter.chapter_id WHERE course_chapter.chapter_id=1
答案 2 :(得分:0)
我认为,您想在where
的{{1}}子句上添加一个条件,而不是chapter_id
,因为每个course_id
可以有多个course
,因此请替换条件如下:
chapters
如果您想从特定课程中返回SELECT * FROM `course_chapter`
INNER JOIN course_lecture ON course_lecture.chapter_id= course_chapter.chapter_id
WHERE course_chapter.chapter_id = 1
,也可以在course_id
上添加条件。只需添加chapter