Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何合并单个sql表中两条记录的同一字段_Java_Mysql_Sql_Jdbc - Fatal编程技术网

Java 如何合并单个sql表中两条记录的同一字段

Java 如何合并单个sql表中两条记录的同一字段,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,我为多名员工维护一个名为CustomerInfo的数据库,每当客户联系我时,我都会将该客户的详细信息插入表中。。。。如果同一个客户一次又一次地打电话,我会插入一条新的记录,记录中只包含id号和与所打电话不同的产品 如果我用id搜索表,它只返回一条记录,但如果我用电话号码或电子邮件id搜索,它可能会给出多条记录,现在我希望返回记录如下 Customer Name, Phone Number, Email Id, product1,product2,... 在SQL中可以这样做吗。。。? 如果是这

我为多名员工维护一个名为CustomerInfo的数据库,每当客户联系我时,我都会将该客户的详细信息插入表中。。。。如果同一个客户一次又一次地打电话,我会插入一条新的记录,记录中只包含id号和与所打电话不同的产品

如果我用id搜索表,它只返回一条记录,但如果我用电话号码或电子邮件id搜索,它可能会给出多条记录,现在我希望返回记录如下

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;