首页 > 解决方案 > 在两个表中搜索列:ERROR 1066 (42000): Not unique table/alias

问题描述

尝试以下查询时出现此错误。我有一个名为 access_groups 的表,一个名为 Companies,还有一个名为 access_group_companies 的连接表。我正在尝试使用 company.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 '%ВТБ%';

标签: mysqlsql

解决方案


根据您提供的信息,并假设有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 '%ВТБ%';

推荐阅读