1

2つのテーブルユーザーと連絡先があります。各ユーザーは複数の連絡先を持つことができます。JFreeChart(javaライブラリ)を使用してグラフ(カマンベール)を描画し、テストした各ユーザーの連絡先の数を示します。

select u.name, sum(c) from user u, contact c

しかし、私は持っています

unknown column c in field list

テーブルの構造は次のとおりです。

utilisateur = idutilisateur、identifiant、motdepasse、nom、prenom

contact = idcontact、............、idutilisateur

どうすればそれを達成できますか、

また、私は常にこの問題を抱えており、基本的なチュートリアルしか見つけられないので、そのようなクエリを作成する方法を学ぶためのチュートリアルへのリンクを教えてください。

4

2 に答える 2

1

テーブル自体だけでなく、カウントしようとしているテーブルの列を参照する必要があります。

試してみると:

select u.name, count(c.ID) 
from user u, contact c

IDフィールドに値があるすべてのレコードをカウントできます。これが主キーの場合、すべてのレコードにこのフィールドが必要です。sumからへの変更に注意してくださいcount

これでは問題を完全に解決することはできません。また、以下を結合することにより、2つのテーブルが関連していることをSQLに通知する必要があります。

JOIN contact
ON user.ID=contact.userID

from user u代わりにこれを置きます, contact c

SQLの学習を開始するには、こちらをお試しください: http ://www.w3schools.com/sql/default.asp

于 2013-01-20T08:20:07.597 に答える
0
String sql1 = "SELECT u.nom, COUNT(c.idcontact) ContactsCount FROM utilisateur u LEFT " + "JOIN contact c ON u.idutilisateur = c.idutilisateur " + "GROUP BY u.nom";



sql = "SELECT u.nom + ' ' + u.prenom dd, COUNT(c.idcontact) FROM utilisateur u " + "LEFT OUTER JOIN contact c ON u.idutilisateur = c.idutilisateur GROUP BY u.nom + ' ' + u.prenom";
于 2013-01-20T08:18:04.040 に答える