0

したがって、人口が最も多い部族(plemeと呼ばれるテーブル)を見つける必要があります。それを取得するには、naseljeから人口を取得する必要があるため、naseljeとigralecからpid(プレーヤーID)までの3つのテーブルを組み合わせる必要があります。 tid(部族ID)を使用してigralecとplemeを接続して部族の名前を取得した後、次のように記述しました。これは完全に機能します。

select p.*, sum(n.population) as populacija   
from naselje n, igralec i, pleme p
where n.pid = i.pid and i.tid = p.tid
group by tid
order by populacija desc
limit 1;

ここでの唯一の欠点は、同じ値を持つ複数の列が存在する可能性があるため、制限1のクエリです...LIMITを使用せずにこれを解決する別の方法が必要です

4

1 に答える 1

0

クエリでは、最大の人口に対する答えを把握するために、常に内部テーブル全体を作成し、グループごとに合計する必要があります。制限は、最終セットから最初のアイテムを取得することだけです。おそらく本当に気になるのは、結果を並べ替える必要がないことです。私はあなたがそれを持っているより良い方法を考えることができません。

于 2012-05-14T18:17:10.450 に答える