MySQL 找不到列

标签 mysql

您好,他的查询给了我以下错误:

“on 子句”中存在未知列“m.home_team_id”

SELECT DISTINCT (
`m`.`match_id`), 
`m`.`competition_id`, 
`m`.`date`, 
`h`.`team_name` AS "homeTeam", `h`.`team_id` AS "homeTeamID", 
`a`.`team_name` AS "awayTeam", `a`.`team_id` AS "awayTeamID", 
`o`.`for`, `o`.`against` 
FROM `single` bs, `matches` m, `teams` t, `outcomes` o 
JOIN `teams` `h` ON `m`.`home_team_id`=`h`.`team_id` 
JOIN `teams` `a` ON `m`.`away_team_id`=`a`.`team_id` 
WHERE `bs`.`match_id`=`m`.`match_id` 
AND `m`.`score_id`=`o`.`outcome_id` 
AND `actual_return` IS NOT NULL`enter code here`

m 是名为 matches 的表的别名,该表具有列 home_team_idaway_team_id 所以我不明白为什么该列不能'找不到吗?

艾伦。

最佳答案

SELECT 
     DISTINCT (`m`.`match_id`), 
      `m`.`competition_id`, 
      `m`.`date`, 

      `h`.`team_name` AS "homeTeam",
      `h`.`team_id` AS "homeTeamID", 

      `a`.`team_name` AS "awayTeam",
      `a`.`team_id` AS "awayTeamID", 

      `o`.`for`, 
      `o`.`against` 

FROM `single` bs

      join `matches` m ON bs.match_id = m.match_id
      join `outcomes` o m.score_id = o.outcome_id 
      join `teams` t   --<--- I don't know what the join is for `teams` here 
                          --- you probably don't need this in the query at all 

      JOIN `teams` `h` ON `m`.`home_team_id`=`h`.`team_id` 
      JOIN `teams` `a` ON `m`.`away_team_id`=`a`.`team_id` 

WHERE  `actual_return` IS NOT NULL 

关于MySQL 找不到列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18617625/

相关文章:

php - 使用从 mysql 数据库填充的下拉列表中获取值来传递值

php - 从不等于 $var 的表结果中选择?

mysql - 如何使用 max 函数重写此 'Invalid use of group function' 查询来查找排名

php - 是否可以从 laravel 迁移中更改 mysql DB 编码字符集?

mysql - 如何选择除 id 外具有不同列的表

mysql - 返回最近的行和与其他条件匹配的行,而不在 mysql 中重复

php - PHP 和 MySQL 中的页面模板

mysql - 合并具有单独日期范围的表而不重叠数据 - Access

mysql - 制作多类别项目数据库结构

php - Symfony 2 EntityAudit 根本不生成历史/版本表