2013-05-09 94 views
0

我有一个具有以下字段与外键相同的表

MENU_ID, MENU_NAME 

我有一个具有以下字段的“USER”表中的“MENU”表中的多个列

USER_ID, EXPLORER_MENU_ID, TABLET_MENU_ID 

EXPLORER_MENU_ID和TABLET_MENU_ID是FOREIGN键TO菜单表。 。 如何从这两个表中获取以下信息?

USER_ID, EXPLORER_MENU_NAME, TABLET_MENU_NAME 

我曾尝试连接和联盟,我可以得到两个不同的输出记录,一个用于EXPLORER_MENU_NAME,一个用于TABLET_MENU_NAME此信息,但我想在一个单一的记录这些信息,因为这

USER_ID, EXPLORER_MENU_NAME, TABLET_MENU_NAME 

感谢您的帮助

回答

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 

其他CA n使用JOIN或LEFT JOIN。
第三个可以使用WITH子句。

+0

Thanks igr ...这种方法工作得很好。在此期间,我还能够使用JOIN制定解决方案,但解决方案的执行计划似乎更好。 – Guddu 2013-05-09 09:14:42