1

我有menuaction表,它们通过一对一的表共享链接:

菜单:ID,名称
行动:身份证,姓名
MenAct:menu_id,action_id

并非全部都menu.idMenAct.menu_id集合中(换句话说,某些菜单没有关联的操作)...

我不能写选择,它给出了成对的menu.name, action.name时间:

menu.id = MenAct.menu_id AND action.id = MenAct.action_id

否则menu.name, NULL...

这需要嵌套请求或其他 SQL 技术,但我对 Oracle SQL 非常陌生。

4

1 回答 1

5

听起来你想要一个LEFT JOIN不是INNER JOIN

select m.name, a.name
from menu m
left join menuact ma
    on m.id = ma.menu_id
left join action a
    on ma.action_id = a.id

ALEFT JOIN将返回表中的所有行menu,无论它在其他表中是否有匹配的行。如果它不存在,那么您将nullaction.

如果您在学习JOIN语法方面需要帮助,这里有一个很好的连接可视化解释

于 2013-02-06T15:25:50.580 回答