在两个表中搜索列:错误1066(42000):不是唯一的表/别名

时间:2019-04-16 07:40:41

标签: mysql sql

尝试以下查询时出现此错误。我有一个名为access_groups的表,一个名为companys的表和一个名为access_group_companies的联接表。我正在尝试使用companies.name和access_groups.name中的字段使用AND逻辑进行搜索。知道是什么原因造成的吗?而且,如果您可能知道运行此搜索的更好方法,那就太好了。

SELECT ag.id, ag.name, c.name
FROM access_groups ag,
     companies c
         JOIN ag ON ag.id = access_group_companies.access_group_id
WHERE CONCAT(ag.name, c.name) LIKE '%ВТБ%';

1 个答案:

答案 0 :(得分:0)

根据您提供的信息,并假设companies(id)中有可以与access_group_companies(company_id)联接的联接列。

SELECT ag.id, ag.name, c.name 
FROM access_groups ag 
INNER JOIN access_group_companies agc ON ag.id = agc.access_group_id 
INNER JOIN companies c ON c.id = agc.company_id
WHERE CONCAT(ag.name, c.name) LIKE '%ВТБ%';