我有4个表,我想用一个查询输出信息,我不知道该怎么做。
•从table1我想获得所有记录
•对于table1中的每条记录,我想从table1中的所有记录中取出来自field1的SUM来自table1的匹配id
•对于table1中的每条记录,我想从table1中的所有记录中取出来自field1的SUM,该匹配的id取自table1
•对于table1中的每条记录,我想从table4取出一条记录的值,该记录取自table1的匹配id
修改
这是我的工作代码:
SELECT DISTINCT
i.id,
i.dateCreated,
i.dateBilled,
i.dateCompleted,
i.userId,
i.type,
i.status,
i.truck,
i.poNumber,
i.total,
i.billtoId,
i.shiptoId,
i.invoiceNumber,
i.loadNumber,
SUM(p.amount) as amountpaid,
c.name as billtoName
FROM `invoices` as i
LEFT JOIN `invoice_payments` as p ON i.id = p.invoice
RIGHT JOIN `companies` as c ON c.id = i.billtoId
GROUP BY i.id, i.invoiceNumber
您可以看到我如何通过左连接从我的发票上的所有付款中获得SUM
。我正在尝试对i.total
执行相同的操作,但是一旦我添加了另一个LEFT JOIN
,我的计算结果就会出错,结果会出现amountpaid
加倍
答案 0 :(得分:1)
您可以在SELECT
语句中使用子查询编写此查询:
SELECT id,
(SELECT sum(field1) FROM t2 WHERE t2.idfrom1=t1.id) AS firstSum,
(SELECT sum(field1) FROM t3 WHERE t3.idfrom1=t1.id) AS secondSum,
(SELECT min(field1) FROM t4 WHERE t4.id=t1.f2 LIMIT 1) AS singleRecord
FROM t1
这是一个想法,你只需要根据你的架构进行调整。
编辑:从图纸中更新