Java 如何合并单个sql表中两条记录的同一字段
我为多名员工维护一个名为CustomerInfo的数据库,每当客户联系我时,我都会将该客户的详细信息插入表中。。。。如果同一个客户一次又一次地打电话,我会插入一条新的记录,记录中只包含id号和与所打电话不同的产品 如果我用id搜索表,它只返回一条记录,但如果我用电话号码或电子邮件id搜索,它可能会给出多条记录,现在我希望返回记录如下Java 如何合并单个sql表中两条记录的同一字段,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,我为多名员工维护一个名为CustomerInfo的数据库,每当客户联系我时,我都会将该客户的详细信息插入表中。。。。如果同一个客户一次又一次地打电话,我会插入一条新的记录,记录中只包含id号和与所打电话不同的产品 如果我用id搜索表,它只返回一条记录,但如果我用电话号码或电子邮件id搜索,它可能会给出多条记录,现在我希望返回记录如下 Customer Name, Phone Number, Email Id, product1,product2,... 在SQL中可以这样做吗。。。? 如果是这
Customer Name, Phone Number, Email Id, product1,product2,...
在SQL中可以这样做吗。。。?
如果是这样,请向我解释…您可以使用聚合和
group_concat()
:
也就是说,您的数据库应该至少有两个表。一个用于客户及其联系信息。另外,
CustomerProducts
用于查看产品信息。这称为“规范化”,如果您使用的是关系数据库,您应该熟悉这个概念。网上有很多很好的解释。为什么要用Java标记它?你是如何通过ID进行搜索的?你当然意识到不止一个人可以拥有相同的电话号码,对吗?在任何情况下,您都应该考虑规范化数据库。如果你不知道这意味着什么,我已经听说了这本书的好东西,《为凡人设计数据库》。@DanBracuk请参考一些书。。。。
select CustomerName, PhoneNumber, EmailId, group_concat(product)
from CustomerInfo
group by CustomerName, PhoneNumber, EmailId;