Mysql 如何使用sql查询联接我的发票和发票产品表。。?
我有两个表invoice和invoice product表,我想就每个invoice id加入我的两个表 我曾尝试编写sql查询,但它是错误的Mysql 如何使用sql查询联接我的发票和发票产品表。。?,mysql,sql,Mysql,Sql,我有两个表invoice和invoice product表,我想就每个invoice id加入我的两个表 我曾尝试编写sql查询,但它是错误的 SELECT invoice.invoice_id, invoice_product.product_name FROM invoice, invoice_product WHERE invoice.invoice_id = invoice_product.invoices_id 我想这样展示我的实际结果 Invoice_id | Invoice_n
SELECT invoice.invoice_id, invoice_product.product_name
FROM invoice, invoice_product
WHERE invoice.invoice_id = invoice_product.invoices_id
我想这样展示我的实际结果
Invoice_id | Invoice_name | Product_name | Created Date
========== |============= |=============================|==============
1 | Test 1 | Product1 ,product 2 | 2019-05-02
2 | Test 2 | New Product ,New Product | 2019-05-02
发票
表格:
invoice\u产品
表格:
您需要使用一个
GROUP\u CONCAT
来获得这样的产品列表,按发票号分组。这将有助于:
SELECT i.invoice_id, i.invoice_name, GROUP_CONCAT(ip.product_name) AS products, i.created_at
FROM invoice i
JOIN invoice_product ip ON i.invoice_id = ip.invoices_id
GROUP BY i.invoice_id
输出:
invoice_id invoice_name products created_at
1 Test 1 Product 1,Product 2 2019-05-02 00:00:00
2 Test 2 Product New,Product New New 2019-05-02 00:00:00
请注意,使用逗号的隐式
JOIN
语法已被弃用一段时间,最好改为编写显式JOIN
s。您需要使用GROUP\u CONCAT
来获得这样的产品列表,按发票号分组。这将有助于:
SELECT i.invoice_id, i.invoice_name, GROUP_CONCAT(ip.product_name) AS products, i.created_at
FROM invoice i
JOIN invoice_product ip ON i.invoice_id = ip.invoices_id
GROUP BY i.invoice_id
输出:
invoice_id invoice_name products created_at
1 Test 1 Product 1,Product 2 2019-05-02 00:00:00
2 Test 2 Product New,Product New New 2019-05-02 00:00:00
请注意,使用逗号的隐式JOIN
语法已被弃用一段时间,最好改为编写显式JOIN
s。使用group\u concat()
使用group\u concat()
避免与实际语法连接,这太旧了。 我不建议使用非原子值,但
GROUP\u CONCAT
函数正在为您完成这项工作
SELECT invoice.invoice_id, GROUP_CONCAT(IP.product_name), I.created_at
FROM invoice AS I
JOIN invoice_product AS IP
ON I.invoice_id = IP.invoices_id
GROUP BY IP.invoices_id
避免与实际语法连接,这太旧了。 我不建议使用非原子值,但
GROUP\u CONCAT
函数正在为您完成这项工作
SELECT invoice.invoice_id, GROUP_CONCAT(IP.product_name), I.created_at
FROM invoice AS I
JOIN invoice_product AS IP
ON I.invoice_id = IP.invoices_id
GROUP BY IP.invoices_id
我正在使用mysql数据库和php.group\u concat…如果可能,请给我一个示例代码。我正在使用mysql数据库和php.group\u concat…如果可能,请给我一个示例代码。