java - 查询内部查询到 1 个查询 postgresql

标签 java postgresql serialization

我有这样的问题

UPDATE FOLLOWUP F SET CUSTOMER=(SELECT NAME FROM CUSTOMERS C WHERE F.CUST_ID=C.ID), PHONE=(SELECT SEARCHKEY FROM CUSTOMERS C WHERE F.CUST_ID=C.ID);

这在我的 postgresql 中成功运行,但不能在 java 中运行

和我的java函数

for (final TicketLineInfo l : ticket.getLines())
    if(l.getConsumption()!= 0.0 && l.getMultiply()!=l.getConsumption()) {            
        new PreparedSentence(s
                , "UPDATE FOLLOWUP F SET CUSTOMER=(SELECT NAME FROM CUSTOMERS C WHERE F.CUST_ID=?), PHONE=(SELECT SEARCHKEY FROM CUSTOMERS C WHERE F.CUST_ID=?);"
                , SerializerWriteParams.INSTANCE
                ).exec(new DataParams() { public void writeValues() throws BasicException {
                        setString(1, ticket.getCustomerId());
                        setString(2, ticket.getCustomerId());
                }});
                 }

当我运行它时

我得到这样的错误:

com.openbravo.basic.BasicException: 
org.postgresql.util.PSQLException: ERROR: more than one row returned by a subquery used as an expression

org.postgresql.util.PSQLException: 
ERROR: more than one row returned by a subquery used as an expression

我的问题是如何将上面的查询转换成一个没有子查询的查询..这样我就可以避免这个异常并继续我的执行或者是否有任何其他支持这个的序列化程序

最佳答案

看起来您的查询中不需要子查询:

update FOLLOWUP as F set
    Name = c.Name,
    Phone = c.SearchKey
from CUSTOMERS as c
where
    F.Cust_ID = C.ID and
    F.Cust_ID = ?

关于java - 查询内部查询到 1 个查询 postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18755464/

相关文章:

java - activiti:skipExpression 不起作用

java - 如何保存点列 postgres - Hibernate

json - 如何从 postgresql 查询生成嵌套的 json 并用行数信息包装它?

java - 从另一个类访问数组列表

java - 如何使用 Java Calendar 获取特定月份的天数?

java - 使用git bash时无法识别java命令

sql - Postgresql 排序依据和限制

Java:不变性和序列化

c++ - boost序列化中如何区分读/写操作?

c# - 如何将程序集对象序列化/反序列化为字节数组