MySQL嵌套查询:从两个表返回单行和多行查询


MySQL nested query: returning single row and multiple row queries from two tables

我有两个表:发票和收费,它们是一对多关系。(简化)发票有: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连接的一个很好的例子可以在这里找到