エラーメッセージEvery derived table must have its own alias
をGoogle翻訳にかけると、「すべての派生テーブルは、独自の別名を持っている必要があります」と訳されます。このエラーメッセージを修正するためには、
lang
1(select score, deviation from scores where score > 30)
という派生テーブルに別名をつけます。
lang
1(select score, deviation from scores where score > 30) as gt30
AS句を使って別名をつけることで、このエラーメッセージは解消されます。しかし、他にもいくつか修正しなければならないところがあります。例えば、%suzuki%
はクォートで囲う必要がありますし、最初のSELECT文のscores.id
を正しく動作させるために、すべての派生テーブルにidカラムを追加する必要があります。更に、idカラムを追加することで、T.Mmiuraさんの指摘する問題が生じてきます。
これらの修正箇所をすべて修正したあとのSQL文は以下のようになります。
lang
1SELECT
2 id,
3 score,
4 deviation
5 FROM
6 (
7 (
8 SELECT
9 id,
10 score,
11 deviation
12 FROM
13 scores
14 WHERE
15 score > 30
16 )
17 UNION ALL
18 (
19 SELECT
20 id,
21 score,
22 deviation
23 FROM
24 scores LEFT JOIN students
25 USING (id)
26 WHERE
27 name LIKE "%suzuki%"
28 )
29 ) AS uni
30;
これでとりあえず、エラーは出なくなります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/07 15:39
2015/06/08 00:20