具有同一表的外键的多列

时间:2013-05-09 08:26:47

标签: sql oracle plsql oracle11g oracle10g

我有一个“MENU”表,其中包含以下字段

MENU_ID, MENU_NAME

我有一个“USER”表,其中包含以下字段

USER_ID, EXPLORER_MENU_ID, TABLET_MENU_ID

EXPLORER_MENU_ID和TABLET_MENU_ID是FOREIGN键TO MENU TABLE。 。 如何从这两个表中获得以下信息?

USER_ID, EXPLORER_MENU_NAME, TABLET_MENU_NAME

我已尝试过JOIN和Union,我可以在两个不同的输出记录中获取此信息,一个用于EXPLORER_MENU_NAME,另一个用于TABLET_MENU_NAME,但我希望将此信息放在一个记录中作为此

USER_ID, EXPLORER_MENU_NAME, TABLET_MENU_NAME

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

一种方法是

select user_id, ( select menu_name from menu where menu_id = explorer_menu_id ) as explorer_menu_name,
( select menu_name from menu where menu_id = tablet_menu_id ) as tablet_menu_name
from user

另一个可以使用JOIN或LEFT JOIN。
第三个可以使用WITH子句。