0

こんにちは、彼のクエリは私に次のエラーを与えています:

「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`

mhome_team_idは、列を持つmatchesという名前のテーブルのエイリアスであるaway_team_idため、列が見つからない理由がわかりませんか?

アラン。

4

3 に答える 3

1
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 
于 2013-09-04T15:23:20.890 に答える
1
FROM a, b, c
JOIN d ON ...
JOIN e ON ...

論理的には次のように機能します。

FROM a, b,
  (c
   JOIN d ON ...
   JOIN e ON ...)

JOINキーワードはコンマよりも優先順位が高いためです。

したがって、あなたの例では、それをやろうとすると、まだJOIN何があるかわかりmません。

matchesしたがって、最後に置くことで修正できるはずです。つまり、変更します

FROM `single` bs, `matches` m, `teams` t, `outcomes` o 

に:

FROM `single` bs, `teams` t, `outcomes` o, `matches` m

ただし、Michael が推奨したように、明示的な結合 ( を使用JOIN) と暗黙的な結合 (カンマを使用) を混在させないでください。

また、teams tまったく使われていないようです。

于 2013-09-04T15:46:52.503 に答える
0

あなたの間違いはJOINSを置く場所にあると思います。table を JOIN したい場合は、 tablemの隣ではなく、その隣に JOIN を配置する必要がありますo

今のところ、ステートメントは tableoとtable を結合しようとしていると思いますh。そのため、テーブル (および列) が見つかりませんm

于 2013-09-04T15:23:20.237 に答える