mysql - 如何使用 sql 查询加入我的发票和发票产品表..?

标签 mysql sql

我有两个表发票和发票产品表,我想根据每个发票 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_name | Product_name                | Created Date
========== |============= |=============================|==============
   1       |    Test 1    |   Product1 ,product 2       | 2019-05-02
   2       |    Test 2    |    New Product ,New Product | 2019-05-02

发票表:

enter image description here

invoice_product 表:

enter image description here

最佳答案

避免与您的实际语法结合,这太旧了。 我不建议使用非原子值,但 GROUP_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 - 如何使用 sql 查询加入我的发票和发票产品表..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55950437/

相关文章:

mysql - 如何保留存在同一关系的多个实例的关联表?

php - 尝试编写一个使用 session 变量的函数

php - 无法在 MySQL PHP 表单中显示记录字段更新结果

sql - MySQL Select and Order by with a Limit 可以改变

php - MYSQL/PHP 帮助 - 从原始预订两侧的表格中选择下一个可用日期

php - MySQL:通过用户ID获取常用记录

php - 使用php向上/向下移动MySQL行的位置

mysql - SQL 查询长度的实际限制(特别是 MySQL)

mysql - 导入从 MySQL Workbench 正向工程生成的 SQL 时出现错误 1064

mysql - 在连接条件下使用函数,是否会因为缺少可用索引而导致全表扫描?