我有3张桌子
role
user
user_role
role
包含两行,role_id
和role
,
和user
包含,user_id
,fname
,lname
,mname
,birthday
。
和user_role
包含ur_id
,role_id
,user_id
。
我正在尝试弄清楚如何使用user
的{{1}}查询所有role
?
teacher
答案 0 :(得分:2)
您需要使用联接来获取输出。这可能有助于获得它。
Select u.fname as Fname, u.lname as Lname, r.role as Role, DATE_FORMAT(u.birtday,'%d-%m-%Y') as birthdate from user u
join user_role ur on u.user_id = ur.user_id
join role r on ur.role_id = r.role_id
where r.role = "teacher";
为了更好的输出,请用预期的答案更新您的问题
答案 1 :(得分:1)
请参阅下面的内部联接教程链接
http://www.mysqltutorial.org/mysql-inner-join.aspx
SELECT * FROM role
INNER JOIN user_role ON role.role_id = user_role.role_id
INNER JOIN user ON user_role.user_id= user.user_id
WHERE role.role="teacher";
答案 2 :(得分:1)
SELECT u.user_id, u.fname, u.lname, u.mname, u.birth,r.role FROM user_role ur WHERE
ur.user_id=(SELECT u.user_id FROM user u) AND
ur.role_id=(SELECT r.role_id FROM role r)
答案 3 :(得分:1)
尝试此查询。
SELECT u.fname, u.lname, r.role, u.birthdate FROM user AS u, role AS r, user_role AS ur WHERE u.user_id = ur.user_id AND r.role_id = ur.role_id