MySQL SELECT IF statement



我有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显示users中的studentteacher名称。我尝试过模拟工作,但它也不起作用。

试试这个:

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上的学生匹配中提取记录

最新更新