2015-04-02 87 views
-3

我有3個表
如何查詢MySQL的關係

  1. role
  2. user
  3. user_role

role包含兩行這是role_idrole

user包含,user_idfnamelnamemnamebirthday

user_role包含ur_idrole_id,user_id

我想弄清楚如何查詢所有userroleteacher

是這樣的:

Fname | Lname | Role  | birthdate 
robert | foo | teacher | 10-12-15 
+1

如果我們不知道列的名字,我們不能回答這個問題 – xsami 2015-04-02 04:55:01

+0

您需要總是添加一些預覽表格 – xsami 2015-04-02 05:02:40

回答

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
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) 
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