表结构如下图: 现在需要根据用户的输入内容,来从不同的表中查询内容,如何才可以快速有效的查出我想要的结果? 我的想法是将三个表关联起来,通过case...when来根据flag的值来判断该从哪个表中拿数据,最终组成一个临时表,然后再从临时表中,根据用户输入的内容来筛选数据。 请问是否还有其他更有效的思路可供参考?
表1和表A和表B各关联一次,结果做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'
表1和表A和表B各关联一次,结果做union,代码大概如下: