2014-03-05 145 views
0

我有两个表中检索两个表中发现,即使没有数据和独特的列数据。MySQL查询到两个表

菜单

+----------------+----------------+ 
| menu_id  | menu_desc | 
+----------------+----------------+ 
| 1    |  menu1  | 
| 2    |  menu2  | 
| 3    |  menu3  | 
| 4    |  menu4  | 
| 5    |  menu5  | 
+----------------+----------------+ 

权利

+----------+--------------+---------+ 
| Role_id | menu_id | Rights | 
+----------+--------------+---------+ 
| 1  |  1  |  3 | 
| 1  |  2  |  3 | 
| 1  |  3  |  3 | 
+----------+--------------+---------+ 

我希望输出这样的事情,

+----------+------------------+------------+-----------+ 
| menu_id |  menu_desc | Role_id | Rights | 
+----------+------------------+------------+-----------+ 
| 1  |  menu1  |  1  |  3  | 
| 2  |  menu2  |  1  |  3  | 
| 3  |  menu3  |  1  |  3  | 
| 4  |  menu4  |  1  | null | 
| 5  |  menu5  |  1  | null | 
+----------+------------------+------------+-----------+ 

这可能吗?

+0

告诉我们你到目前为止尝试过的东西 – Mikpa

+2

尝试左外连接。 –

回答

0

这给NULL两个ROLE_ID和权利

SELECT Menu.menu_id, Menu.menu_desc, Role.Role_id, Role.Rights 
FROM Menu LEFT OUTER JOIN Role ON Menu.menu_id=Role.menu_id 
ORDER BY Menu.menu_id 
+0

举个例子; http://sqlfiddle.com/#!2/2f74b7/2 –

0

你必须使用加入:

select Menu.menu_id, menu_desc, Role_id, Rights.menu_id, Rights.Rights from Menu join Rights on Menu.menu_id=Rights.menu_id; 
+0

我得到了第一个3个记录..需要的所有记录显示 – Kani

0

尝试下面,如果没有得到需要的结果然后共享问题:

SELECT m.menu_id, m.menu_desc, r.Role_id, r. Rights FROM Menu m LEFT JOIN `Rights` r ON m.menu_id=r.menu_id order by m.menu_id;