mysql - 从多个表中选择时,MySQL“On 子句中的未知列”
问题描述
我有以下查询:
select film.title, film_actor.film_id, count(*) as castAmount, concat(actor.first_name, ' ',
actor.last_name) as actorFullName
from film, actor
inner join film_actor on film_actor.film_id = film.film_id
group by film.film_id
我收到错误消息:'on Clause' 中的未知列 'film.film_id' 我已经读过它与多个连接语句有关,但很难找到能给我正确结果的解决方案。我想将 first_name 和 last_name 连接为 actorFullName,其中名字和姓氏是从“actor”表中获取的。
谢谢。
解决方案
不要混合隐式和显式连接!一致地使用标准的显式连接。
您的查询在聚合方面也不一致。如果您希望每部电影有一行(如您当前的group by
条款所示),那么您需要汇总演员姓名。
您可能正在寻找:
select f.title, f.film_id, count(*) as castAmount,
group_concat(a.first_name, ' ', a.last_name) actor_full_names
from film_actor fa
inner join film f on f.film_id = fa.film_id
inner join actor a on a.actor_id = fa.actor_id
group by f.film_id
这会为每部电影生成一行,以及演员人数和演员全名列表,以逗号分隔。
推荐阅读
- google-chrome - Chromium/Chrome 如何决定使用 http/2 还是 http/1.1
- python - 如何按纬度和经度插值数据?
- laravel - 如何获取在线用户及其数量?
- html - 标题偏移上方/下方的边框
- kubernetes - 如何修复 Kubernetes 上 Hyperledger Fabric 中不支持的配置类型“”错误?
- powershell - 远程执行 CMD 命令
- c++ - G4GMLParser 评估器:语法错误 C++
- python - 在 Mac OS 中用 python 解析来自特定发件人的 Outlook 邮件
- python - 简单的打印命令在 VS Code Python 扩展中不显示任何输出
- c - 用 Visual Studio 2019 编译 udis86 给了我一个未解析的外部符号