Concat和左连接

时间:2016-03-21 12:49:06

标签: mysql sql

我在php中有一个动态查询构造函数,它希望基于一个字段串联实现左连接。

int n <---- number entered by user
for(int i=97;i<(97+n);i++)
    System.out.print((char)i+" ");

但总是返回

  

1146 - 表'portal_utf8.pk'不存在

我该如何解决这个问题?提前谢谢。

2 个答案:

答案 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并加入它是否更正确?