MySQL SELECT IF语句

时间:2017-01-29 21:20:10

标签: mysql if-statement left-join

我有4张桌子;贷款(有'user_id'),用户(有'student_ID'和'teacher_ID'),学生和老师。

我试过的代码:

SELECT *FROM loans LEFT JOIN users ON loans.user_id=users.user_id
(
IF student_ID='1' THEN (SELECT *FROM teacher)
ELSE (SELECT *FROM student)
)

代码无法正常运行。我希望loans显示student中的teacherusers名称。我尝试过similia工作,但它也不起作用。

1 个答案:

答案 0 :(得分:0)

试试这个:

select *
from loans l
left join users u on l.user_id = users.user_id
left join teacher t on u.teacher_id = t.teacher_id and u.student_id = 1
left join student s on u.student_id = s.student_id and u.student_id <> 1

<强>解释

  • 提取贷款中的每条记录
  • 在user_id上匹配的用户中提取记录
    • 如果用户的student_id为1
    • ,则从teacher_id上的教师匹配中提取记录
    • 如果用户的student_id不是1,则从student_id上的学生匹配中提取记录