我的查询说我的专栏不存在

时间:2016-11-04 19:22:24

标签: mysql sql

这有效,但它返回所有数据,我不需要它。

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。 该列确实存在。

2 个答案:

答案 0 :(得分:4)

分配表别名时,必须在引用表时使用它。由于您将别名a分配给sec_permission,因此您必须使用a.name,而不是sec_permission.name

答案 1 :(得分: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`;