鍍金池/ 問(wèn)答/iOS  數(shù)據(jù)庫(kù)/ 多表聯(lián)查搜索如何實(shí)現(xiàn)?

多表聯(lián)查搜索如何實(shí)現(xiàn)?

表結(jié)構(gòu)如下圖:

圖片描述

????????現(xiàn)在需要根據(jù)用戶的輸入內(nèi)容,來(lái)從不同的表中查詢內(nèi)容,如何才可以快速有效的查出我想要的結(jié)果?

????????我的想法是將三個(gè)表關(guān)聯(lián)起來(lái),通過(guò)case...when來(lái)根據(jù)flag的值來(lái)判斷該從哪個(gè)表中拿數(shù)據(jù),最終組成一個(gè)臨時(shí)表,然后再?gòu)呐R時(shí)表中,根據(jù)用戶輸入的內(nèi)容來(lái)篩選數(shù)據(jù)。

????????請(qǐng)問(wèn)是否還有其他更有效的思路可供參考?

回答
編輯回答
失魂人

表1和表A和表B各關(guān)聯(lián)一次,結(jié)果做union,代碼大概如下:

select ta.*
from t1 join ta on t1.id_a = ta.id
where t1.flag = 'a'
union all
select tb.*
from t1 join tb on t1.id_b = tb.id
where t1.flag = 'b'
2018年5月1日 21:41