クリスティアンフラウィウス:
私は、機能のインタビューのために自分を準備しようとしていると私は私が最後の演習C)でいくつかの問題が発生したこの問題を解決しようとしたとき。
私は私のローカルデータベース「labsd」にこれらのテーブルを再作成しており、これは私のソリューションです。
A)
SELECT labsd.interns.email,labsd.grades.grade
from labsd.grades
Inner join labsd.interns on labsd.interns.id=labsd.grades.id
Order by labsd.grades.grade desc
Limit 10;
B)
SELECT count(labsd.grades.id),labsd.grades.grade
from grades
group by labsd.grades.grade
order by count(labsd.grades.id) desc;
そして、ここで問題です
C)
Update labsd.interns as c
Set c.Accepted=1
where labsd.interns.id In (SELECT labsd.interns.id
from labsd.grades
Inner join labsd.interns on labsd.interns.id=labsd.grades.id
Order by labsd.grades.grade desc);
最初の時点で、私は私がそのコードを再利用する必要があると思ったトップ10の学生のために頼まれたが、私はもう限界を使用することはできませんし、私は次のエラーを得たことを考えると:
Error Code: 1235. This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
私はそれが最後のバージョンであると仮定して、私はちょうどそれをこの学期をインストールしているかのMySQLのバージョンを見つける方法がわかりません。
とにも制限を使用せずに、私はまだタイトルに言及したエラーを取得します。私は、テーブルの名前を変更しようとしたが、それは私の問題を解決していません。
GMB:
MySQLは使用しようとしているという構文を許可していません。代わりに、次のような構文に参加/更新を使用することができます。
update labsd.interns s
inner join (
select i.id
from labsd.grades g
inner join labsd.interns i on i.id = g.id
order by g.grade desc limit 10
) t on t.id = s.id
set s.accepted = 1
サブクエリが列挙id
10件の最良の候補のSは、その後、外部クエリは、元のテーブルとサブクエリの結果を結合し、セットに一致する行のフラグ。