我在php中有一个动态查询构造函数,它希望基于一个字段串联实现左连接。
int n <---- number entered by user
for(int i=97;i<(97+n);i++)
System.out.print((char)i+" ");
但总是返回
1146 - 表'portal_utf8.pk'不存在
我该如何解决这个问题?提前谢谢。
答案 0 :(得分:1)
在派生表中执行concat部分等,稍后您将加入该表:
select A1.*, A2.RHID
from
(SELECT CONCAT(A1.RHID, ',', A1.CD_DOC_ID, ',', A1.SEQ) AS pk,
A1.EMISSOR, A1.DT_EMISSAO, A1.DT_VALIDADE
FROM rh_id_documentos) A1
LEFT JOIN fo_on_workflow A2 ON A1.pk = A2.RHID
答案 1 :(得分:0)
您能举例说明您希望看到的内容,例如:
RHID = aaa
CD_DOC_ID = bbb
SEQ = ccc
然后pk将是:
aaa,bbb,ccc
你真的想要连接一个&#39;&#39;每个领域之间?
在您的A1查询中,您正在引用A1,但是没有包含别名A1的表,直到外部范围,我认为这应该是:
SELECT
A1.*, A2.RHID
FROM
(SELECT
CONCAT(RHID, ',', CD_DOC_ID, ',', SEQ) AS pk,
EMISSOR, DT_EMISSAO, DT_VALIDADE
FROM
rh_id_documentos) A1
LEFT JOIN
fo_on_workflow A2
ON
A1.pk = A2.RHID
同样查看您的查询是正确的加入条件,公开A1.RHID并加入它是否更正确?