2016-04-12 6 views
1

次のように私のSQLステートメントがあるSQL一時テーブルを使用しながら、1146テーブル「college_small.result」が存在しません。ここで "結果"。エラーコード:

答えて

0

最大テイク数を持つcourse_idを取得するだけの場合は、カウントでサブクエリを注文し、結果セットを1つのレコードに限定することができます。

SELECT course_id, COUNT(course_id) AS count 
FROM takes 
GROUP BY course_id 
ORDER BY COUNT(course_id) DESC 
LIMIT 1 

あなたもかかるの最大数のネクタイがあることをイベントでは、すべてのコースID値を取得したい場合は、次のようなやや複雑クエリ試すことができます。

SELECT result.course_id 
FROM 
(
    SELECT course_id, COUNT(course_id) AS count 
    FROM takes 
    GROUP BY course_id 
) AS result 
WHERE result.count = (
    SELECT COUNT(*) 
    FROM takes 
    GROUP BY course_id 
    ORDER BY COUNT(*) DESC 
    LIMIT 1 
) 
+0

をそれは私が質問を解決するのを助けることができます。しかし、私はまだ一時テーブルを2回使用することについて尋ねたいです。実際には普通ではないかもしれません – dapao

+0

一時テーブルを再利用する一般的な方法の1つは、_commonテーブル式_ )。 SQL Server、Oracle、Postgresはすべてこの機能をサポートしていますが、MySQLではサポートしていません。ビューや動的SQLを使用して、MySQLで一時テーブルを再利用できるかもしれません。 –