我有menu
和action
表通过一对一表共享链接:
menu: id, name action: id, name MenAct: menu_id, action_id
并非全部都menu.id
在MenAct.menu_id
集合中(换句话说,某些菜单没有相关的动作)......
我不能写select,它给出了对menu.name, action.name
时:
menu.id = MenAct.menu_id AND action.id = MenAct.action_id
和menu.name, NULL
否则...
这需要嵌套请求或其他SQL技术,但我非常喜欢Oracle SQL.
听起来你想要的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
Run Code Online (Sandbox Code Playgroud)
A LEFT JOIN
将返回menu
表中的所有行,无论它是否在其他表中具有匹配的行.如果它不存在那么你将有一个null
值action
.
如果您需要帮助学习JOIN
语法,这里有一个很好的连接的视觉解释
归档时间: |
|
查看次数: |
63 次 |
最近记录: |