如何查询mysql关系

时间:2015-04-02 04:52:15

标签: php mysql

我有3张桌子

  1. role
  2. user
  3. user_role
  4. role包含两行,role_idrole

    user包含,user_idfnamelnamemnamebirthday

    user_role包含ur_idrole_iduser_id

    我正在尝试弄清楚如何使用user的{​​{1}}查询所有role

    这样的事情:

    teacher

4 个答案:

答案 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