现有三张表:
学生:id,姓名,年龄,体育_id,音乐_id体育: id,项目名,举办时间音乐: id,项目名,举办时间现要列出所有学生的信息,如果他参加了活动小组则列出其项目名称,形式如下:id,姓名,年龄,体育项目名,音乐项目名用ADOQuery控件,请问SQL语名怎么写? 另外,我用 " select id,姓名,年龄,体育.项目名 as 体育项目名,音乐.项目名 as 音乐项目名 from 学生 left join 体育 on 学生.体育_id=体育.id left join 音乐 on 学生.音乐_id=音乐.id "
为什么总是说" left join 音乐 on 学生.音乐_id=音乐.id " 错误?
学生:id,姓名,年龄,体育_id,音乐_id体育: id,项目名,举办时间音乐: id,项目名,举办时间现要列出所有学生的信息,如果他参加了活动小组则列出其项目名称,形式如下:id,姓名,年龄,体育项目名,音乐项目名用ADOQuery控件,请问SQL语名怎么写? 另外,我用 " select id,姓名,年龄,体育.项目名 as 体育项目名,音乐.项目名 as 音乐项目名 from 学生 left join 体育 on 学生.体育_id=体育.id left join 音乐 on 学生.音乐_id=音乐.id "
为什么总是说" left join 音乐 on 学生.音乐_id=音乐.id " 错误?
" select id,姓名,年龄,体育.项目名 as 体育项目名,音乐.项目名 as 音乐项目名 from 学生 left join 体育 on 学生.体育_id=体育.id left join 音乐 on 学生.音乐_id=音乐.id " 在SQLServer中不出错,但在ACCESS中就不行,楼上所说的方法不行,若一个学生没有参加任何小组,他的姓名和年龄等信息应该能显示出来只不过“体育项目名,音乐项目名”为空值。
再建一个表(Table_xs) id,姓名,年龄,体育_id,音乐_id,体育项目名,音乐项目名。
Insert Table_xs set (id,姓名,年龄,体育_id,音乐_id)
select id,姓名,年龄,体育_id,音乐_id from 学生。
然后 再根据体育_id,音乐_id 来Update表;
这样应该可以的。