MySQL Query从两个表中检索数据,甚至没有找到数据和两个表中的唯一列

时间:2014-03-05 07:09:59

标签: c# 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   |
+----------+------------------+------------+-----------+

有可能吗?

3 个答案:

答案 0 :(得分:0)

这为Role_id和Rights

提供了NULL
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

答案 1 :(得分:0)

你必须使用join:

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

答案 2 :(得分: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;