Child 表总和别名错误
Child tables sum alias error
A parent table:负载 和 2 child tables:发票 & 付款。
全部链接在 Load_id。
获取每次加载的所有发票和付款的总和。
这给了我错误:[Err] 1054 - 'on clause'
中的未知列 'I.Load_Id'
SELECT L.Load_Id,
I.Invoice_Total,
P.Payment_Total
FROM Loads AS L
LEFT OUTER JOIN
(
SELECT
SUM(Invoice_Total) AS Invoice_Total
FROM invoices
GROUP BY Load_Id
) AS I
ON I.Load_Id = L.Load_Id
LEFT OUTER JOIN
(
SELECT
SUM(Amount) AS Payment_Total
FROM Payments
GROUP BY Load_Id
) AS P
ON P.Load_Id = L.Load_Id
这也给我错误:[Err] 1054 - 'on clause'
中的未知列 'I.Load_Id'
SELECT Loads.Load_Id,
I.Invoice_Total,
P.Payment_Total
FROM Loads
LEFT JOIN
(
SELECT
SUM(Invoice_Total) AS Invoice_Total
FROM invoices
GROUP BY Load_Id
) AS I
ON I.Load_Id = Loads.Load_Id
LEFT JOIN
(
SELECT
SUM(Amount) AS Payment_Total
FROM Payments
GROUP BY Load_Id
) AS P
ON P.Load_Id = Loads.Load_Id
我尝试了很多变体,但显然我不明白。
您没有在您的子查询中 selecting 任何名为 Load_Id
的字段,并且 mySQL 正在抱怨这一点。你已经按它分组了,所以只需要像下面的查询一样select它,这样你就可以加入它了。
SELECT L.Load_Id,
I.Invoice_Total,
P.Payment_Total
FROM Loads AS L
LEFT OUTER JOIN
(
SELECT
SUM(Invoice_Total) AS Invoice_Total, Load_Id
FROM invoices
GROUP BY Load_Id
) AS I
ON I.Load_Id = L.Load_Id
LEFT OUTER JOIN
(
SELECT
SUM(Amount) AS Payment_Total, Load_Id
FROM Payments
GROUP BY Load_Id
) AS P
ON P.Load_Id = L.Load_Id
A parent table:负载 和 2 child tables:发票 & 付款。 全部链接在 Load_id。 获取每次加载的所有发票和付款的总和。
这给了我错误:[Err] 1054 - 'on clause'
中的未知列 'I.Load_Id'SELECT L.Load_Id,
I.Invoice_Total,
P.Payment_Total
FROM Loads AS L
LEFT OUTER JOIN
(
SELECT
SUM(Invoice_Total) AS Invoice_Total
FROM invoices
GROUP BY Load_Id
) AS I
ON I.Load_Id = L.Load_Id
LEFT OUTER JOIN
(
SELECT
SUM(Amount) AS Payment_Total
FROM Payments
GROUP BY Load_Id
) AS P
ON P.Load_Id = L.Load_Id
这也给我错误:[Err] 1054 - 'on clause'
中的未知列 'I.Load_Id'SELECT Loads.Load_Id,
I.Invoice_Total,
P.Payment_Total
FROM Loads
LEFT JOIN
(
SELECT
SUM(Invoice_Total) AS Invoice_Total
FROM invoices
GROUP BY Load_Id
) AS I
ON I.Load_Id = Loads.Load_Id
LEFT JOIN
(
SELECT
SUM(Amount) AS Payment_Total
FROM Payments
GROUP BY Load_Id
) AS P
ON P.Load_Id = Loads.Load_Id
我尝试了很多变体,但显然我不明白。
您没有在您的子查询中 selecting 任何名为 Load_Id
的字段,并且 mySQL 正在抱怨这一点。你已经按它分组了,所以只需要像下面的查询一样select它,这样你就可以加入它了。
SELECT L.Load_Id,
I.Invoice_Total,
P.Payment_Total
FROM Loads AS L
LEFT OUTER JOIN
(
SELECT
SUM(Invoice_Total) AS Invoice_Total, Load_Id
FROM invoices
GROUP BY Load_Id
) AS I
ON I.Load_Id = L.Load_Id
LEFT OUTER JOIN
(
SELECT
SUM(Amount) AS Payment_Total, Load_Id
FROM Payments
GROUP BY Load_Id
) AS P
ON P.Load_Id = L.Load_Id