gpt4 book ai didi

MySQL查询多选合并

转载 作者:行者123 更新时间:2023-11-30 21:40:39 24 4
gpt4 key购买 nike

我有一个名为 MM( Material 运动)的主表和一个名为 MI( Material 项目)的子表,我进行了查询以选择具有特定条件的所有 MI 记录,并且 MI 中的每条记录都连接到一个主列表名为 stock 的表,用于获取商品价格。现在我需要获取这些项目中的每一个用于购买的帐户代码。所以我回到 po(采购订单)表,它也有一个名为 polines 表的子表,这个 polines 表有 stockID,它也在 MI 表中。

MM
MMID , Sender, NewLocation,Status

MI
MIID, MMID, StockID, Qty1

stock
StockID, Description, UPrice

polines
PLID, POID, StockID, UPrice, AccountCode


SELECT *
FROM (mm
JOIN mi ON mi.MMID = mm.MMID)
JOIN stock ON mi.StockID = stock.StockID
WHERE mm.Status = 'Issue'

上面给了我这样的正确记录(在选择了我不需要的列之后):

Sender  New Location  StockID  Description    UnitPrice
------ ----------- ------- ---------- ---------
James DC1 A1 Generator g4 450

但我需要的是:

Sender  New Location  StockID     Description      UnitPrice    account code
------ ----------- ---------- ---------- --------- ------------
James DC1 A1 Generator g4 450 B001,B003

基本上帐户代码应该合并或分组到 stockID 但

这是 polines 表的样子:

StockID       Description    Account Code 
---------- ------- ----------
A1 Generator g4 B001
A1 Generator g4 B003
A2 Pipe D3 B004

我不确定这在 MySQL 中是否可行我可以用 PHP 做到这一点,但我真的想提高我的 MySQL 技能所以任何帮助将不胜感激!

最佳答案

使用group_concat函数

SELECT Sender,NewLocation,stock.StockID,polines.Description,UPrice, group_concat(polines .AccountCode separator ',')   
FROM mm
JOIN mi ON mi.MMID = mm.MMID
JOIN stock ON mi.StockID = stock.StockID
join polines on stock.StockID=polines.StockID
WHERE mm.Status = 'Issue'
group by Sender,NewLocation,UPrice,stock.StockID,polines.Description

关于MySQL查询多选合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51806860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com