我有两张桌子:发票和收费,有一对多的关系。 (简化)发票有:id,description,日期为字段和费用有:id,id_invoice,price,qty,date as fields
对于发票生成,我需要发票表中的信息,例如: id = 1以及费用表中id_invoice = 1的所有信息(因此发票中有一行,收费中有多行)
目前我有两个单独的查询,但我想知道是否可以在一个查询中执行此操作?
由于
答案 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