gpt4 book ai didi

mysql - 具有 self 排除的 GROUP_CONCAT

转载 作者:太空宇宙 更新时间:2023-11-03 11:55:19 25 4
gpt4 key购买 nike

也许我缺少一些逻辑或一种轻松执行此操作的方法。

有一个包含颜色的表格,有些表格可能有 0、1、2、3 或更多与同一 colorHue 中的其他颜色相匹配

id  colorName   colorHue    ColorNumber
----------------------------------------------------
1 Orange Og 1000
2 Pumpkin Og 1000
3 Red Rd 1001
4 Brick Rd 1001
5 Carrot Og 1000
6 Blue Blue 1002
7 Scarlet Rd 1001

我需要一个 VIEW,其中列出了所有颜色和其他可能的颜色,但不显示当前行的颜色名称。

id  colorName   Other Colors
----------------------------------------------------
1 Orange Pumpkin,Carrot
2 Pumpkin Orange,Carrot
3 Red Brick,Scarlet
4 Brick Red,Scarlet
5 Carrot Orange,Pumpkin
6 Blue
7 Scarlet Red,Brick

我可以很容易地获得所有这些的 GROUP_CONCAT,但无法弄清楚如何消除对当前行的 self 引用。所以我明白了:

id  colorName   Other Colors
----------------------------------------------------
1 Orange Orange,Pumpkin,Carrot
2 Pumpkin Orange,Pumpkin,Carrot
3 Red Red,Brick,Scarlet
4 Brick Red,Brick,Scarlet
5 Carrot Orange,Pumpkin,Carrot
6 Blue Blue
7 Scarlet Red,Brick,Scarlet

最佳答案

http://sqlfiddle.com/#!9/43c122/2

SELECT colorHue, 
GROUP_CONCAT(IF(colorHue=colorName,null,colorName))
FROM colors
GROUP BY colorHue

更新 http://sqlfiddle.com/#!9/43c122/8

SELECT c.*, 
GROUP_CONCAT(c1.colorName)
FROM colors c
LEFT JOIN colors c1
ON c.colorHue = c1.colorHue
AND c.id != c1.id
GROUP BY c.id

关于mysql - 具有 self 排除的 GROUP_CONCAT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33287508/

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