【发布时间】:2017-06-20 10:00:47
【问题描述】:
我有两张桌子:
t_orderPayment with n_id,n_order,n_paytype AND
t_paytype with n_ID , str_desc
我的查询是:
SELECT t_OrderPayment.n_order ,
t_OrderPayment.n_paytype = (select t_paytype.str_desc as n_paytype from t_PayType, t_orderpayment where t_OrderPayment.n_PayType = t_PayType.n_ID)
FROM t_OrderPayment
WHERE (((t_OrderPayment.n_PaymentStatus)<>-7)) ;
返回错误
"这个子查询最多可以返回一条记录"
我尝试使用 MAX 和 TOP 1 设置它,例如 n_paytype = (select max(t_paytype.str_desc) 但显示错误 Expr1001 Str.desc 只有文本值,这可能是原因。可能是 INNER JOIN 可以以某种方式帮助我吗?
【问题讨论】:
-
您能否格式化代码并指定所需的结果?
-
您使用的是哪个DBMS?
-
如果此查询
select t_paytype.str_desc as n_paytype from t_PayType, t_orderpayment where t_OrderPayment.n_PayType = t_PayType.n_ID返回多个标量值,则不能在分配子选择中使用它... -
我相信它是 Microsoft Access,我用 Visual Data Manager 打开它。但是我设法解决了。我终于明白了 INNER JOIN 如果将来有人需要,这是代码:SELECT t_OrderPayment.t_date,n_order,t_Paytype.str_desc as n_PayType FROM t_OrderPayment INNER JOIN t_paytype on t_OrderPayment.n_PayType = t_PayType.n_ID WHERE (((t_OrderPayment.n_PaymentStatus) -7)) ;
标签: sql