gpt4 book ai didi

php - GROUP concat 与 mysql 连接表

转载 作者:行者123 更新时间:2023-11-29 10:58:45 24 4
gpt4 key购买 nike

我需要连接 2 个表来获取数据,并且我也使用 SELECT GROUP CONCAT。当我加入 1 个表时,我工作得很好,但当我尝试加入三个表时,值会重复。请指教。

下面是我的查询

     $data = DB::table('festivals')
->join('namedesgs', 'festivals.id', '=', 'namedesgs.festival')
->join('vehicles', 'festivals.id', '=', 'vehicles.festival')
->select(DB::raw(" GROUP_CONCAT(vehicles.role SEPARATOR '\n') as role,GROUP_CONCAT(vehicles.size SEPARATOR '\n') as size,festivals.id,festivals.ref_no as ref_no, festivals.camping,festivals.tour_mgr_name,festivals.email,festivals.mobile,festivals.name_address, GROUP_CONCAT(namedesgs.name SEPARATOR '\n') as names,GROUP_CONCAT(namedesgs.designation SEPARATOR '\n') as designations"))
->groupBy('festivals.id')
->get();

最佳答案

似乎您的其中一张表具有同一个 Festival.id 的多个条目。这会导致同一个 Festival.id 有多行,最终在 group_concat 中出现重复的项目。

所以首先检查一下我上面提到的情况是否真的会发生。

如果应该尝试将 DISTINCT 添加到您的组连接中:

 $data = DB::table('festivals')
->join('namedesgs', 'festivals.id', '=', 'namedesgs.festival')
->join('vehicles', 'festivals.id', '=', 'vehicles.festival')
->select(DB::raw(" GROUP_CONCAT(DISTINCT vehicles.role SEPARATOR '\n') as role,GROUP_CONCAT(DISTINCT vehicles.size SEPARATOR '\n') as size,festivals.id,festivals.ref_no as ref_no, festivals.camping,festivals.tour_mgr_name,festivals.email,festivals.mobile,festivals.name_address, GROUP_CONCAT(DISTINCT namedesgs.name SEPARATOR '\n') as names,GROUP_CONCAT(DISTINCT namedesgs.designation SEPARATOR '\n') as designations"))
->groupBy('festivals.id')
->get();

关于php - GROUP concat 与 mysql 连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42605014/

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