1

我有两个表用户和联系人,每个用户可以有多个联系人我想用 JFreeChart(java 库)绘制一个图表(camembert)来显示我测试的每个用户的联系人数量:

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

但是我有

unknown column c in field list

这是表的结构:

utilisateur = idutilisateur, identifiant, motdepasse, nom, prenom

联系人 = idcontact, ......, idutilisateur

我怎样才能做到这一点,

另外,请给我教程的链接,以学习如何进行这样的查询,因为我总是遇到这个问题,而且我只找到基本教程,提前谢谢你

4

2 回答 2

1

您需要引用要计数的表的列,而不仅仅是表本身。

如果你试试:

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

您可以计算在 ID 字段中有值的所有记录。如果这是一个主键,那么所有记录都应该有这个字段。注意从sum到的变化count

这不会完全解决您的问题。您还必须通过加入让 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 回答