2015-04-04 67 views
0

多个表我有我的PostgreSQL数据库3表:查询PostgreSQL中(左或右等)

menu(id_menu,parent_id,name_uri,uri) 
type_role(id_role,name_role) 
menutyperole(id_menu,id_role) 

在我的桌子type_role我有以下数据(管理员和技术人员),在表中menu存在多个链接多级访问另一端,并且表menutyperole是与其他表的连接。我需要一个查询来提取没有分配技术人员的menu的数据(type_role表)。我不知道我是否需要任何条件或其他什么?

SELECT * 
FROM menutyperole 
    INNER JOIN type_role ON menutyperole.id_role = type_role.id_role 
    RIGHT JOIN menu ON menu.id_menu = menutyperole.id_menu 
WHERE menu.id_parent != 0 
+0

我请求您为每个表,并在问题 – 2015-04-04 04:49:49

+0

'parent_id'或'id_parent'预期的输出提供的样本数据? – 2015-04-04 04:55:41

回答

0

我解决了这个问题......是这样的

SELECT * FROM menu INNER JOIN type_role ON type_role.id_role NOT IN(SELECT menutyperole.id_menu FROM menutyperole) LEFT JOIN menutyperole ON menu.id_menu = menutyperole.id_menu WHERE menu.id_parent != 0 AND menutyperole.id_menu IS NULL OR menutyperole.id_role != 1