Php 类似MYSQL数组的SELECT语句
Php 类似MYSQL数组的SELECT语句,php,mysql,arrays,select,Php,Mysql,Arrays,Select,希望一切都好 我真的需要一个数据库查询/选择语句的帮助,在我在resultset/query上使用mysqli_fetch_all之后,该语句将为我的PHP数组提供正确的“设计” 我有这两张桌子 产品表: 库存表: 这就是我希望在发送查询并使用mysqli\u fetch\u all之后我的数组的外观(我不知道是否可以使用MYSQL,或者在另一个数据库管理系统中?) 如果可能,以下方法也可以起作用: SELECT语句,为我提供特定产品标识的所有颜色以及这些颜色的可用尺寸。我在同一
希望一切都好 我真的需要一个数据库查询/选择语句的帮助,在我在resultset/query上使用mysqli_fetch_all之后,该语句将为我的PHP数组提供正确的“设计” 我有这两张桌子
产品表:
库存表:
这就是我希望在发送查询并使用mysqli\u fetch\u all之后我的数组的外观(我不知道是否可以使用MYSQL,或者在另一个数据库管理系统中?)
如果可能,以下方法也可以起作用: SELECT语句,为我提供特定产品标识的所有颜色以及这些颜色的可用尺寸。我在同一行/记录中也需要这个(不知何故,我可以确定哪些尺寸属于正确的颜色) 当然,如果我不希望所有内容都在同一行中,那就更容易了,但是有人可能有一个聪明的解决方案或创造性的想法,知道如何在一行/记录中构造它
//
近地天体更新
select p.id, p.Manufacturer, p.Product_name, group_concat(`Color` separator ';') as `Color`
from
(
select pid, concat(`Color`, '-',
group_concat(`Size` separator ',')) as `Color`
from stock
group by pid, `Color`
) s, Products p
where p.Id = s.PId
group by p.id;
我在论坛外收到了一份关于我的问题的提案。我应该看看像Redis(Key/Value)这样的数据库。考虑到我想要什么,也许它比MYSQL更适合我
有什么想法吗?你可能会发现小组讨论很有帮助,尽管你需要对结果进行分割(PHP explode应该可以帮你做到这一点)。嘿。我试过了。GROUP_CONCAT将返回多个记录/行(每种颜色一个,大小按颜色分组)。我需要以某种创造性的方式将所有内容放在一条记录/一行中。@CrazyNeo你能编辑你的问题以显示你尝试过的SQL吗,请特别是小组讨论,然后我会看看我能做些什么来帮助你。@MandyShaw,请再次阅读我的评论(编辑)@CrazyNeo你为什么不能以这样的方式分组/加入数据以获得一行,子数组与组_CONCAT连接后,php可以拆分了吗?请显示不起作用的SQL&我们可以尝试让它做你想要的。Hello@Sydel谢谢你的帖子。您的建议返回一列中特定ID的所有颜色,以及另一列中所有这些颜色的所有大小相加,这样我就无法确定哪些大小属于正确的颜色。请检查这是否有助于您:选择p.ID、p.Manufacturer、p.Product_name、GROUP_CONCAT(不同的CONCAT(s.color,“-”、s.size)按s.color SEPARATOR“;”)从产品p订购,库存s,其中p.Id=s.Product_Id按p.Id分组;非常感谢你,我的朋友,你快到了。你能让它像这样工作吗:黑色,中,小,大;(颜色所有尺寸;颜色所有尺寸)而不是黑色介质;黑色小;黑色大的,那么我可以接受你的解决方案
ID Product_ID Color Size Quantity
1 1 Black Medium 61
2 1 Black Large 26
3 1 Purple Small 37
4 1 Red XSmall 88
5 2 Green Medium 74
Array
(
[0] => Array
(
[Product_ID] => 1
[Manufacturer] => Nike
[Product_Name] => Air Max Talldress
[Options] => Array
(
[Black] => Medium, Large
[Purple] => Small
[Red] => XSmall
)
)
[1] => Array
(
[Product_ID] => 2
[Manufacturer] => Adidas
[Product_Name] => High Voltage
[Options] => Array
(
[Green] => Medium
)
)
)
select p.id, p.Manufacturer, p.Product_name, group_concat(`Color` separator ';') as `Color`
from
(
select pid, concat(`Color`, '-',
group_concat(`Size` separator ',')) as `Color`
from stock
group by pid, `Color`
) s, Products p
where p.Id = s.PId
group by p.id;