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

时间:2011-04-23 23:28:58

标签: php mysql sql nested

我有两张桌子:发票和收费,有一对多的关系。 (简化)发票有:id,description,日期为字段和费用有:id,id_invoice,price,qty,date as fields

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

目前我有两个单独的查询,但我想知道是否可以在一个查询中执行此操作?

由于

2 个答案:

答案 0 :(得分:1)

你可以在加入JOIN

的两个表之间做一个简单的invoice.id=charges.id_invoice

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

查询看起来像:

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

答案 1 :(得分:0)

根据您的需要,LEFT JOIN似乎更好。例如:

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

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