【发布时间】:2016-07-26 22:12:08
【问题描述】:
我想进行一个查询,将 2 个表组合成一个视图。但是要获取所有需要的数据,我还必须查询第三个表(但此表不必出现在视图中)。它只需执行以下操作(用普通英语编写):
从 edu_courses 获取所有记录(并记住 _id 字段)
那么
从edu_lessons获取所有记录,其中course_id等于edu_courses_id字段/strong>
那么
从edu_lessons_dates获取所有记录,其中lesson_id等于edu_lessons_id字段/strong>
那么
在edu_lessons_dates中搜索最接近start_date的记录(如果有两个相等的start_date字段,则必须找到最接近的start_time)
最终
将查询组合到单个输出(在视图或其他内容中)为:
'edu_courses_vw' ->
edu_courses._id
edu_courses.name
edu_courses.content
edu_courses.yt_url
edu_courses.image_url
edu_courses.difficulty_level
edu_courses.price
edu_courses.online (bool)
edu_courses.max_people
edu_lessons_dates.start_date
edu_lessons_dates.start_time
我尝试了以下方法,但这根本不起作用:
select
courses._id,
courses.name,
courses.content,
dates.start_date,
dates.end_date,
from
edu_courses courses
join edu_lessons les
on courses._id=les.course_id
join edu_lessons_dates dates
on les._id=dates.lesson_id
order by dates.start_date DESC, dates.start_time DESC
LIMIT 1
我有 3 个表,结构如下:
'edu_courses'->
_id
name
content
yt_url
image_url
difficulty_level
price
online (bool)
max_people
'edu_lessons' ->
_id
course_id
name
content
sort
'edu_lessons_dates'->
_id
lesson_id
start_date
start_time
end_date
end_time
current_people
【问题讨论】:
-
你的查询有什么问题(除了那个语法错误额外的逗号)?
-
我在结果中看不到 end_date 或 end_time。即使我在查询中选择 dates.start_date 和 dates.start_time(见编辑)
-
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 7 行的“from edu_courses course join edu_lessons les on cour”附近使用正确的语法