[英]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.