我有两张桌子-
章表
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我使用了上面的查询,我的同一章节显示在许多行,根据现有的讲座,所以需要查询单章标题和多个讲座。怎么做?
发布于 2018-06-22 06:57:18
你想把所有的讲课题目和讲课内容排在一排,然后是章节标题吗?如果是,那么您可以尝试使用此查询。
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发布于 2018-06-22 06:11:45
对此使用右联接
尝试以下几点
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发布于 2018-06-22 07:00:16
我认为,您希望在where子句上添加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如果您想从特定的课程返回chapter,也可以在chapter上添加条件。只需添加AND course_chapter.course_id = <desired_id>
https://stackoverflow.com/questions/50981497
复制相似问题