Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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查询varchar连接_Java_Mysql_Sql - Fatal编程技术网

Java 执行连接时的SQL查询varchar连接

Java 执行连接时的SQL查询varchar连接,java,mysql,sql,Java,Mysql,Sql,我正在编写一个Web服务来查询数据库中的信息并将其放入JSONArray。我有一个名为CLIENT的表和另一个名为CLIENT_NOTES的表,其中包含一个日期和关于客户的注释。一个客户端可以有多个CLIENT_NOTES条目,但反之亦然 所以我的问题是: SELECT c.CLIENT_NAME, cn.NOTE_DATE, cn.CONTENT FROM CLIENT c LEFT JOIN CLIENT_NOTES cn ON c.C

我正在编写一个Web服务来查询数据库中的信息并将其放入JSONArray。我有一个名为CLIENT的表和另一个名为CLIENT_NOTES的表,其中包含一个日期和关于客户的注释。一个客户端可以有多个CLIENT_NOTES条目,但反之亦然

所以我的问题是:

SELECT      c.CLIENT_NAME, cn.NOTE_DATE, cn.CONTENT 
FROM        CLIENT          c
LEFT JOIN   CLIENT_NOTES    cn  ON c.CLIENT_ID = cn.CLIENT_ID
ORDER BY    c.CLIENT_NAME
目前,如果每个客户机有多个note条目,我会得到多个行

如何更改查询,使每个客户端始终获得一行,并且注释日期内容列可以组合成一个包含换行符的串联字符串。

使用


您可以将结果分组并应用该函数:

SELECT      c.CLIENT_NAME, 
            GROUP_CONCAT(cn.NOTE_DATE SEPARATOR '\n'), 
            GROUP_CONCAT(DATE_FORMAT(cn.CONTENT, '%d-%m-%y') SEPARATOR '\n')
FROM        CLIENT          c
LEFT JOIN   CLIENT_NOTES    cn  ON c.CLIENT_ID = cn.CLIENT_ID
GROUP BY    c.CLIENT_NAME
ORDER BY    c.CLIENT_NAME

您正在使用什么RDBMS?谢谢。我应该提到NOTE_DATE是一个时间戳字段,而不是varchar字段。您的GROUP_CONCAT解决方案在CONTENT varchar字段上运行良好,但分隔符似乎没有在timestamp字段上注册。它会追加,但不会创建新行。有什么建议吗?@WilliamRoberts您可以将日期格式化为字符串-请参阅编辑后的答案
SELECT      c.CLIENT_NAME, 
            GROUP_CONCAT(cn.NOTE_DATE SEPARATOR '\n'), 
            GROUP_CONCAT(DATE_FORMAT(cn.CONTENT, '%d-%m-%y') SEPARATOR '\n')
FROM        CLIENT          c
LEFT JOIN   CLIENT_NOTES    cn  ON c.CLIENT_ID = cn.CLIENT_ID
GROUP BY    c.CLIENT_NAME
ORDER BY    c.CLIENT_NAME