mysql - 在两个表中搜索列: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 '%ВТБ%';
解决方案
根据您提供的信息,并假设有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 '%ВТБ%';
推荐阅读
- javascript - Url 更改但不渲染组件 React Router
- java - 如何创建使用 Scanner 类来注册用户输入的方法?
- python - Celery 上的 Heroku 应用程序错误:raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
- python-asyncio - 从模块外部的异步动态更改日志级别
- javascript - React 基本 api 调用问题
- android - onSaveInstanceState() 在华为 P20 (EMUI 10) 上的进程死亡后不起作用
- html - 为什么我的 flexbox 没有占据它所在容器的整个高度?
- pandas - pandas df.to_parquet 写入多个较小的文件
- python - Discord.py:获取带有 id 的用户对象
- javascript - 如果函数是 JS 中的对象,我们可以在函数内部有方法吗?如果是这样,如何称呼他们?