2016-08-18 61 views
0

我有2个SQL表:加入多个表

select * from operation; 
id |  name 
----+-------------------- 
1 | Account add 
2 | Account edit 

select * from role_operation; 
id | role | operation 
----+----------+----------- 
    1 | admin |  1 
    2 | operator |  1 
    3 | admin |  2 

在手术台上的id列和role_operation的operation列链接。 (外键)。我怎样才能得到,此时操作name = Account add

我试图SELECT role_operation.role, operation.name FROM role_operation INNER JOIN operation ON role_operation.operation=operation.id;

都行,但是这给了我所有这一切都存在于role_operation表的操作领域的操作ID行。

+0

你忘了WHERE子句 –

回答

4

使用其中

SELECT role_operation.role, operation.name 
FROM role_operation 
INNER JOIN operation ON role_operation.operation=operation.id 
where operation.name = 'Account add'; 
2
SELECT role_operation.role, operation.name FROM role_operation 
INNER JOIN operation on operation.id = role_operation.operation 
WHERE operation.name='Account add' 
+0

请添加一些文字解释如何/为什么你的解决方案工作。 –