繁体   English   中英

我将如何加入这些表格?

[英]How will I join these tables?

加入这些表时遇到问题; 我有这个代码。

我的查询:

SELECT partial a.{ediTransactionDetailId, poNumber},
       partial b.{edi997DetailId, noOfTrans},
       partial c.{ediTransactionId, senderId, receiverId, gsNumber, isaNumber, fileName},
       partial d.{ediDocTypeId, docType}
FROM
    MATRIXEDIBUNDLE:editransactiondetail a
    JOIN   a.edi997details b
    JOIN   b.editransaction c
    JOIN   c.edidoctype d
WHERE  c.filename LIKE :fileName
    AND    a.ponumber LIKE :poNumber
    AND    d.doctype = :docType
    AND    a.flag = 1
    AND    c.flag = 1 

我得到这个错误:

JOIN b.ediTransaction':错误:类Matrix \\ MatrixEdiBundle \\ Entity \\ EdiTransactionDetail没有名为edi997Details的关联

我如何加入?

表格如下:

您需要学习JOIN Sintaxis

要么你需要ON条款

FROM MatrixEdiBundle:EdiTransactionDetail a 
JOIN Details b
  ON a.SomeID  = B.SomeID

或者您需要CROSS JOIN

FROM MatrixEdiBundle:EdiTransactionDetail a 
CROSS JOIN Details b

您尚未在表之间建立关系,这就是为什么您在这里出现错误的原因,

    SELECT table1.column1, table2.column2...
    FROM table1 JOIN table2
    ON table1.common_field = table2.common_field; // (This part is missing in your code)

进一步研究http://www.tutorialspoint.com/sql/sql-using-joins.htm

您的代码应如下所示:

SELECT  a.edi_transaction_id, a.sender_id, a.receiver_id, a.gs_number, a.isa_number, a.file_name,            
        b.edi_997_detail_id, b.no_of_trans,
        c.edi_transaction_etail_id, c.po_number,                    
        d.edi_doc_type_id, d.doc_type

FROM    (((edi_transaction a 
        left join edi_997_details b on a.edi_transaction_id = b.edi_transaction_id)
        left join edi_transaction_details c on a.edi_transaction_id = c.edi_transaction_id)
        left join edi_doc_type d on a.edi_doc_type_id = d.edi_doc_type_id)

WHERE   a.file_name like '%Your file Name%'      
        and c.po_number like '%Your file Name%'    
        and d.doc_type = 'your doc type'    
        and a.flag = 1 AND c.flag = 1;

希望这能完成您的任务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM