我在弄清楚此SQL查询时遇到了麻烦(MySql 5是服务器)。

我的表是这样关联的:



我的查询如下所示:

select
    tblCustomer.customerNo,
    tblSalesHeader.invoiceNo,
    tblSalesHeader.orderDate,
    tblSalesDetail.quantity,
    tblSalesDetail.productNo,
    tblSalesDetail.description,
    tblSalesDetail.unitPrice
FROM
  tblSalesHeader
   left JOIN tblSalesDetail ON (tblSalesHeader.invoiceNo = tblSalesDetail.invoiceNo)
   left JOIN tblCustomer ON (tblSalesHeader.cID = tblCustomer.cid)
   left JOIN tblUsers ON (tblSalesHeader.salesmanID = tblUsers.iID)
   left JOIN tblProducts ON (tblSalesDetail.productNo = tblProducts.productNumber)

WHERE
  tblSalesHeader.invoiceNo=2482
GROUP BY
  tblCustomer.customerNo,
  tblSalesHeader.invoiceNo,
  tblSalesDetail.productNo


我知道应该返回5行,因为tblSalesDetail中有5行,其中invoiceNo = 2482像这样:

select *
from
    tblSalesDetail
    left join tblSalesHeader on (tblSalesHeader.invoiceNo = tblSalesDetail.invoiceNo)
where
tblSalesHeader.invoiceNo=2482


我确定我的联接正在过滤结果,但我不知道为什么。

最佳答案

摆脱GROUP BY。您没有使用它。

09-20 01:35