2016-11-04 22 views
0

這可行,但它返回所有的數據,我不需要這些。我的查詢說我的專欄不存在

select * 
    from 
     `sec_permission` a 
      INNER JOIN 
     `sec_role_permission` b 
      on a.permission_id = b.permission_id 
      INNER JOIN 
     `sec_role` c 
      on b.role_id = c.`role_id`; 

但是當我指定數據

select `sec_permission`.`name`, `sec_role`.`name` 
from 
    `sec_permission` a 
     INNER JOIN 
    `sec_role_permission` b 
     on a.permission_id = b.permission_id 
     INNER JOIN 
    `sec_role` c 
     on b.role_id = c.`role_id`; 

它返回消息Unknown column 'sec_permission.name' in 'field list。 該列確實存在。

+1

嘗試'選擇a.name'而不是'選擇sec_permission.name'。 – FDavidov

回答

4

分配表別名時,必須在引用表時使用該表。由於您將別名a指定爲sec_permission,因此您必須使用a.name而不是sec_permission.name

3

如果你使用表名的別名,你應該也使用此別名在選擇列名

select a.`name`, b.`name` 
    from `sec_permission` a 
    INNER JOIN `sec_role_permission` b 
    on a.permission_id = b.permission_id 
    INNER JOIN `sec_role` c 
    on b.role_id = c.`role_id`;