我有两个表:发票和收费,它们是一对多关系。(简化)发票有:id,描述,日期作为字段,收费有:id, id_invoice,价格,数量,日期作为字段
对于发票生成,我需要来自发票表的信息,例如id=1,以及来自收费表的所有信息,其中id_invoice=1(因此来自发票的一行和来自收费的多行)
此刻我有两个单独的查询,但我想知道是否有可能在一个查询中做到这一点?
谢谢
您可以在invoice.id=charges.id_invoice
连接的两个表之间执行简单的JOIN
发票字段将以相同的方式返回同一发票上的每个费用,但它允许您在单个查询中获取数据。
查询看起来像这样:
SELECT * FROM invoice i, charges c WHERE i.id=c.id_invoice ORDER BY i.id;
对于您的需要,LEFT JOIN似乎更好。例:
SELECT * FROM invoice i LEFT JOIN charges c ON i.id=c.id_invoice ORDER BY i.id;
SQL连接的一个很好的例子可以在这里找到