シンボルと rpm の 2 つのテーブルがあります。
テーブルの詳細: rpm: rpm のエントリはシンボルをエクスポートし、同様に消費します。
シンボル: シンボル テーブルは、すべてのシンボル (エクスポートおよび消費) のコレクションです。
テーブルの説明:
シンボル: シンボル テーブルには、id、name、rpm_id (rpm テーブルの id にマップ)、エクスポートまたは消費されるかどうかを示すフラグがあります。フラグ = 1; 消費フラグ = 0; 輸出された
rpm: rpm テーブルには ID、名前があります。
詳細 コンテキスト: rpm エントリによってエクスポートされたシンボルは、他の rpm テーブル エントリによって何度も消費されます。したがって、シンボルは異なる id、rpm_id でシンボル テーブルに複数回登録されます。
問題文: エクスポートされたシンボルを特定の rpm (与えられた ID; 35 など) と、各シンボルが他の rpm エントリによって消費された回数によってリストします。
出力レイアウト:
シンボル名 | count(このシンボルが消費された回数)|
試した解決策:
SELECT symbol.name, count(個別のシンボル.rpm_id)
FROM記号、回転数
WHERE symbol.flag = 0 && symbol.rpm_id = 35
GROUP BY symbol.name;
しかし、各シンボルのカウント列に「1」が表示されますが、これは間違っています。
問題のクエリのセマンティック:
最初のクエリは、指定された rpm.id (rpm.id = 35) によってエクスポートされたすべてのシンボルを取得する必要があります。次に、結果セット内の各結果の symbol.id について、消費された回数、つまりそのカウントを見つけ、そのカウントを前に出力する必要があります。そのシンボルの。
結果を得るために何らかの方法/クエリを提案してください。
ありがとうございました。