У меня есть база данных с этими таблицами
Access (UID, Username, Password, Role)
Admission_Students (UID, Name, ETC)
Admission_Lecturers (UID, Name, ETC)
Admission_Admins (UID, Name, ETC)
Я хочу написать запрос, который проверяет, существуют ли введенные имя пользователя и пароль вAccess
стол, а затем получитьName
и другая информация из соответствующихAdmission_*
таблица на основеRole
изAccess
стол илиUID
.
Я пыталсяSELECT
и присоединяется, но я не мог собрать все вместе. Мне нужен эффективный запрос для моего приложения VB.NET.
Заранее спасибо.
Вы можете использовать три левых соединения:
select
a.*,
coalesce(s.name, l.name, d.name) as name,
coalesce(s.etc, l.etc, d.etc) as etc
from access a
left join admission_students s on s.uid = a.uid and a.role = 'student'
left join admission_leturers l on l.uid = a.uid and a.role = 'lecturer'
left join admission_admins d on d.uid = a.uid and a.role = 'admin'
where username = 'conanthebarbarian'