【急】MYSQL根据查询条件去不同的表中查询数据

筱筱攻城狮 2020-12-07 11:37:36
有三张表,t_ebook表示电子书表,t_videoinfo表示视频信息表,t_study_type存放的是类型,1表示视频课,2表示电子书,现在我需要做一个查询操作,根据课程类型,年级,科目这三个条件从这三张表中查询出想要的信息,比如我选的是电子书,高一,语文,这时候的Mysql语句要怎么写?求教各位大佬,
ps:自己尝试过使用IF或case与实现,但是这两种只能返回一个值或字符串,无法返回多个字段值

...全文
3997 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
linFulA 2020-12-08
  • 打赏
  • 举报
回复
你这是5个表的数据,而你只告诉了我们3个表,怎么给你看?
筱筱攻城狮 2020-12-08
  • 打赏
  • 举报
回复
在业务层实现这种查询的方式我已经实现了,主要是想练习一下sql语句的编写,增强一下功底,不知道这种需求的sql语句怎么写
筱筱攻城狮 2020-12-08
  • 打赏
  • 举报
回复
这是另外两张表的数据与结构: 使用到的表总共是五张,现在全部补全了
老紫竹 2020-12-07
  • 打赏
  • 举报
回复
先把你写的发上来啊,包括你怎么想的。
是赵敢敢啊 2020-12-07
  • 打赏
  • 举报
回复
为啥不在java代码里现判断type再执行不同的条件呢
筱筱攻城狮 2020-12-07
  • 打赏
  • 举报
回复
这种也算一种解决办法
杨树叶子0526 2020-12-07
  • 打赏
  • 举报
回复
如果实在不行,可以写两个sql,判断类型是什么,如果是电子书就查电子书selectEbook(返回List),如果是视频就查视频selectVideo(返回List),没有选类型,就两个方法都执行然后将两个List放到一个resultList返回
筱筱攻城狮 2020-12-07
  • 打赏
  • 举报
回复
如果我的筛选条件是电子书,高一,语文,那么我就要筛选出所有的高一,语文类课程的电子书并进行分页处理:SQL语句写的有点烂 SELECT *, IF ( tst.id=2,//2表示电子书 (SELECT t_ebook.book_name FROM t_ebook where t_ebook.id=1), (SELECT t_video_info.video_name FROM t_video_info where t_video_info.id=1) ) as 'result' FROM t_study_type as tst, t_grade, t_ebook, t_video_info, t_subject where tst.id=2 and t_grade.id=5 //5表示高一 and t_subject.id=1 //1表示语文

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧