我有一个规范化的数据库,我正在尝试使用JOIN和GROUP_CONCAT从多个表中返回数据。问题:使用GROUP_CONCAT复制行。我不能使用DISTINCT,因为某些数据(成分制造商)确实需要复制。这是我当前的查询和数据库结构(SQLFiddle):SELECTrecipe.*,GROUP_CONCAT(recipe_detail.ingredient_id)ASiid,GROUP_CONCAT(ingredient.name)ASiname,GROUP_CONCAT(ingredient_mfr.abbr)ASmabbr,GROUP_CONCAT(recipe_tag.name)
我有一个MySQL数据库,每个用户都有一个账号,每个账号可以有多个权限。我的最终目标是以帐户的用户名和逗号分隔的权限ID列表结束。我可以通过两种方式完成此操作:SELECTa.username,GROUP_CONCAT(rp.permission_id)aspermission_idsFROMaccountASaJOINrole_permissionASrpONrp.role_id=a.role_idWHEREa.id=1902……或者……SELECTusernameFROMaccountWHEREid=1902;SELECTpermission_idFROMaccount_permi
我在sqlyog中写了一个存储过程。它很长并且执行了除concat语句之外的所有所需功能,因此我将只列出该特定查询。UPDATErecipes_newSETco_auths=CONCAT(co_auths,',',c1id)WHEREid=name_in;我基本上想要在两个字段中进行分离,并且此语句放置在游标中,因此它是迭代的。co_auths目前为null,所以我得到的结果是,1,2,3,而我希望它是1,2,3。猜猜最合适的解决方案是什么? 最佳答案 通过使用IF:UPDATErecipes_newSETco_auths=IF(c
数据库架构createtable`questions`(`id`intnotnullauto_increment,`title`varchar(45)notnull,primarykey(`id`));createtable`tags`(`id`intnotnullauto_increment,`question_id`intnotnull,`name`varchar(45)notnull,primarykey(`id`));createtable`comments`(`id`intnotnullauto_increment,`question_id`intnotnull,`body`
这可能吗?我有2个表,客户和订单。现在我想用该客户的所有订单ID(以逗号分隔)填写Customers中的一列。我试过类似的东西,但它不起作用:UPDATEcustomersAScLEFTJOINordersASoONo.customerid=c.customeridSETc.orders=GROUP_CONCAT(DISTINCTo.orderid)我收到“群组功能的无效使用”。附言。我知道最好始终在SELECT/JOIN中动态获取GROUP_CONCAT值,但我只是想知道我是否可以通过某种方式填充此列。 最佳答案 您需要在grou
假设我有一张table:学生______________________________________________________|id|name|school|class|______________________________________________________|1|John|ABC|C1||2|Jack|ABC|C1||3|Anna|ABC|C1||4|Peter|DEF|D1||5|Alex|ABC|C2||6|Bryan|ABC|C2||7|David|ABC|C2||8|Cristian|DEF|D1|_________________________
我想找到一种方法将这两个表连接在一起,我能够做到,但如果它找到多个匹配的值,它会再次显示产品表中的所有内容。现在我正在尝试一起使用MySQLgroup_concat以便能够在数组的一个字段中列出所有tName但我不断收到MySQL的错误:ErrorNumber:1064YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'FROM(sp_product)LEFTOUTERJOINsp_product_typeONsp_pr
是否可以这样做:GROUP_CONCAT(user,priceSEPARATOR',')ASitems结果是John3.99,Mike24.99我需要的是这样的:John-3.99,Mike-24.99价格字段基本上使用另一种类型的分隔符。 最佳答案 GROUP_CONCAT(CONCAT(user,'-',price)SEPARATOR',')ASitems或者只是GROUP_CONCAT(user,'-',priceSEPARATOR',')ASitems 关于mysql-GROUP
我有一个SQL查询,它使用GROUP_CONCAT将所有人附加到某个订单。有什么方法可以在GROUP_CONCAT字段内进行搜索吗?SELECTorders.orderID,GROUP_CONCAT(contacts.firstName,"",contacts.lastName)ASattachedContactsFROM(orders)JOINcontactsONorders.contactID=contacts.contactIDGROUPBYorders.orderIDORDERBYorders.orderIDDESC我想添加类似WHEREattachedContactsLIKE
我试图从users表中提取与users_groups数据透视表中特定组匹配的所有用户。我正在使用来自Cartalyst顺便说一句的Sentry2。这可以让所有用户的名字和姓氏连接起来。User::select(DB::raw('CONCAT(last_name,",",first_name)ASfull_name'),'id')->where('activated','=','1')->orderBy('last_name')->lists('full_name','id');当我尝试将其更改为也过滤不属于特定组的用户时,出现语法错误。User::select(DB::raw('SEL