【发布时间】:2011-02-04 08:03:48
【问题描述】:
例子:
表格:盒子
boxID color
01 red
02 blue
03 green
表格:boxHas
boxID has
01 apple
01 pear
01 grapes
01 banana
02 lime
02 apple
02 pear
03 chihuahua
03 nachos
03 baby crocodile
我想查询每个盒子的内容,并返回一个表格,每个ID、颜色和一个连接每个盒子内容的列,所以我使用:
SELECT box.boxID, box.color,GROUP_CONCAT(DISTINCT boxHas.has SEPARATOR ", ") AS contentsFROM boxLEFT JOIN boxHas ON box.boxID=boxHas.boxIDWHERE boxHas.has IN ('apple','pear')GROUP BY box.boxIDORDER BY box.boxID
我得到以下结果表:
boxID color contents
01 red apple, pear
02 blue apple, pear
我的问题是:为什么不在contents 列中列出所有has 值?为什么我的WHERE 语句也裁剪了我的GROUP_CONCAT?
我想我会得到的桌子是:
boxID color contents
01 red apple, banana, grapes, pear
02 blue apple, lime, pear
虽然我想根据WHERE 语句限制我的boxID 结果,但我确实不想限制contents 字段的有效框。 :-/
帮助?
【问题讨论】:
标签: sql mysql group-concat