我想按下表列出一个客户的购买记录。

Table: Invoice
----------------------

invID | cusID | total
----------------------
1     | 1     | 10.5


Table: Invoice Item
--------------------

invID | prodID
---------------
1     | 1
1     | 3

现在我想输出成这样的一行:(或者在php获取的行表中)
invID | cusID | prodID | total
-------------------------------
1     | 1     | 1, 3   | 10.5

我试过什么:
SELECT i.*, ii.prodID FROM invoice i, invoiceitem ii WHERE cusID = '1' AND i.invID = ii.invID
Result:

invID | cusID | prodID | total
-------------------------------
1     | 1     | 1      | 10.5
1     | 1     | 3      | 10.5

最佳答案

我想这对你有用。还没有测试过,所以可能在某个地方有一个小错误,但这个概念应该是可行的。

SELECT i.invID, i.cusID, GROUP_CONCAT(ii.prodID) `prodID`, i.total
FROM invoice i
INNER JOIN invoiceitem ii ON i.invID = ii.invID
GROUP BY i.invID

10-07 14:25