mysql - 一行中一对多所有详细信息的 SELECT 语句

标签 mysql sql select

有两个表:

产品
ID(主键),
ProductName

按月计划
ProductID(主键)(多对一链接到 Products 表),
MonthNumber(主键),
生产数量

如何编写 SELECT 语句来检索以下格式的结果?

ProductName、QtytoProduceMonth1、QtytoProduceMonth2、QtytoProduceMonth3、QtytoProduceMonth4、QtytoProduceMonth5、QtytoProduceMonth6、QtytoProduceMonth7、QtytoProduceMonth8、QtytoProduceMonth9、QtytoProduceMonth10、QtytoProduceMonth11、QtytoProduceMonth12

最佳答案

我不知道在 MySQL 中是否有更简单的方法,但这应该可行:

        select 
        (select descriptions from products d where d.productid = p.productid )
           description,
         max(if(month=1,Qty, null)) m1,
         max(if(month=2, Qty,null)) m2,
         max(if(month=3, Qty, null)) m3 
         /* more here */
         from Planned p 
         group by productid  ;

关于mysql - 一行中一对多所有详细信息的 SELECT 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2305146/

相关文章:

MySQL 错误 1054 : Setting column name and use to where clause

php - 如何选择以起始值开头的数据库?

mysql - 为什么我不能在 WHERE 中使用我的列,而我可以在 GROUP BY 中使用?

sql - 当有 6 个月的间隙时,抓取所有内容,如果没有 6 个月的间隙,则抓取所有 sql

mysql - 连接 MySQL 表以显示计数

sql - 我可以向 mysql 添加一个条目并返回一个查询中不存在的列吗?

mysql - UnixNano 和 MySQL 用法的区别

mysql - 在mysql View 中防止NULL,反规范化

mysql - 使用 ID 匹配的另一个表中的数据更新表

php - Laravel 5.4 - 在同一数据库中将数据从一个表复制到另一个表