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

Php MySQL嵌套查询:从两个表返回单行和多行查询,php,mysql,sql,nested,Php,Mysql,Sql,Nested,我有两个表:发票和费用,具有一对多关系。(简化)发票有:id、说明、日期作为字段,费用有:id、id\u发票、价格、数量、日期作为字段 对于发票生成,我需要来自发票表的信息,例如id=1,以及来自费用表的所有信息,其中id_invoice=1(因此发票中有一行,费用中有多行) 目前我有两个独立的查询,但我想知道是否可以在一个查询中实现这一点 谢谢您可以在两个表之间进行简单的联接,联接时间为invoice.id=charges.id\u invoice 对于同一发票上的每项费用,发票字段将以相同的

我有两个表:发票和费用,具有一对多关系。(简化)发票有:id、说明、日期作为字段,费用有:id、id\u发票、价格、数量、日期作为字段

对于发票生成,我需要来自发票表的信息,例如id=1,以及来自费用表的所有信息,其中id_invoice=1(因此发票中有一行,费用中有多行)

目前我有两个独立的查询,但我想知道是否可以在一个查询中实现这一点


谢谢

您可以在两个表之间进行简单的
联接
,联接时间为
invoice.id=charges.id\u invoice

对于同一发票上的每项费用,发票字段将以相同的方式返回,但它允许您在单个查询中获取数据

查询将类似于:

SELECT * FROM invoice i, charges c WHERE i.id=c.id_invoice ORDER BY i.id;

根据您的需要,左键连接似乎更好。例:

SELECT * FROM invoice i LEFT JOIN charges c ON i.id=c.id_invoice ORDER BY i.id;

可以找到SQL联接的一个很好的例子

我们可以看看这些查询吗?谢谢,这很有意义。从数据库负载的角度来看,这会比两个单独的查询更有效吗?很难说。客户端的工作会更少(只有一个查询而不是两个),但总体数据更多,这可能会产生更多的网络流量。我怀疑里面没有什么。