有三張表,t_ebook表示電子書表,t_videoinfo表示視頻資訊表,t_study_type存放的是型別,1表示視頻課,2表示電子書,現在我需要做一個查詢操作,根據課程型別,年級,科目這三個條件從這三張表中查詢出想要的資訊,比如我選的是電子書,高一,語文,這時候的Mysql陳述句要怎么寫?求教各位大佬,
ps:自己嘗試過使用IF或case與實作,但是這兩種只能回傳一個值或字串,無法回傳多個欄位值



uj5u.com熱心網友回復:
先把你寫的發上來啊,包括你怎么想的。uj5u.com熱心網友回復:
如果我的篩選條件是電子書,高一,語文,那么我就要篩選出所有的高一,語文類課程的電子書并進行分頁處理: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表示語文
uj5u.com熱心網友回復:
如果實在不行,可以寫兩個sql,判斷型別是什么,如果是電子書就查電子書selectEbook(回傳List),如果是視頻就查視頻selectVideo(回傳List),沒有選型別,就兩個方法都執行然后將兩個List放到一個resultList回傳uj5u.com熱心網友回復:
這種也算一種解決辦法
uj5u.com熱心網友回復:
為啥不在java代碼里現判斷type再執行不同的條件呢轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/231154.html
標籤:Java相關
