如何根据mysql上的字段值加入

时间:2016-09-13 01:37:16

标签: sql database join

我的数据库中有用户表,并且有一个user_type字段,如果值为0,则为0或1.如果没有学生表,我希望它与教师表连接。

有可能吗?

3 个答案:

答案 0 :(得分:2)

您也可以使用交叉申请或CTE,但是因为您没有指定数据库,您使用它应该作为通用解决方案

Select t1.fields,t2.fields
From user_table t1
LEFT JOIN teacher_table t2 
ON t1.ID=t2.ID 
and t1.user_type_field=0
UNION ALL
Select t1.fields,t2.fields
From user_table t1
LEFT JOIN student_table t2 
ON t1.ID=t2.ID 
and t1.user_type_field=1

答案 1 :(得分:1)

如果您的teacheruser表格具有相同的列并且您不想要重复记录,请使用UNION代替UNION ALL

Select *
From user_table u
LEFT JOIN teacher_table t 
ON u.ID=t.ID 
and u.user_type_field=0
UNION
Select *
From user_table u
LEFT JOIN student_table t 
ON u.ID=t.ID 
and u.user_type_field=1
  

*替换为您需要选择的任何字段   所有领域都可能会严重影响你的表现。

答案 2 :(得分:0)

为了便于理解,您完全可以在代码隐藏中使用它。 例如。使用Enum进行该领域。