相关疑难解决方法(0)

GROUP_CONCAT有限制

我有表player-s在许多一对多的关系与skill-s

目标是通过单个查询列出球员及其"前3名技能".

小提琴

create table player(
  id int primary key
);

create table skill(
  id int primary key,
  title varchar(100)
);

create table player_skills (
  id int primary key,
  player_id int,
  skill_id int,
  value int
);
Run Code Online (Sandbox Code Playgroud)

查询:

SELECT 
p.id,  
group_concat(s.title  SEPARATOR ', ') as skills

FROM player p
LEFT JOIN player_skills ps ON ps.player_id = p.id
LEFT JOIN skill s ON s.id = ps.skill_id

WHERE ps.value > 2
-- skills limit 3 some how ...
group …
Run Code Online (Sandbox Code Playgroud)

mysql group-concat

42
推荐指数
5
解决办法
6万
查看次数

Mysql查询组Concat在单个查询中限制子表的多个记录

专辑表:

+------------------------------+
| id      name       updated_at|
+------------------------------+
Run Code Online (Sandbox Code Playgroud)

专辑成员表:

+------------------------------------+
| id      album_id         member_id |
+------------------------------------+
Run Code Online (Sandbox Code Playgroud)

Album_media表:

+--------------------------------+
| id       album_id         link |
+--------------------------------+
Run Code Online (Sandbox Code Playgroud)

我的查询:

$limit = 30;
$member_id = 1;
SELECT a . *,
(SELECT GROUP_CONCAT(CONCAT('$assets/album_image/medium/', ds_album_media.link) SEPARATOR ',') as link
FROM ds_album_media WHERE ds_album_media.album_id = a.id ORDER BY a.updated_at desc LIMIT 0 , 5)
AS photo_link FROM `ds_album` a
LEFT JOIN ds_album_media amd ON amd.album_id = a.id
LEFT JOIN ds_album_member amb ON amb.album_id = a.id
where amb.member_id = " …
Run Code Online (Sandbox Code Playgroud)

php mysql laravel eloquent laravel-5.1

10
推荐指数
1
解决办法
522
查看次数

使用GROUP_CONCAT在查询中忽略LIMIT

我需要从第二个表中选择一些行,并用逗号分隔的字符串连接它们.除了一个问题之外,查询工作正常 - 它总是选择所有行并忽略LIMIT.

这是我的查询的一部分,它获取该字符串并忽略LIMIT:

select 
    group_concat(value order by `order` asc SEPARATOR ', ') 
from slud_data 
    left join slud_types on slud_types.type_id=slud_data.type_id 
where slud_data.product_id=18 and value!='' and display=0 limit 3;


// Result:
+---------------------------------------------------------+
| group_concat(value order by `order` asc SEPARATOR ', ') |
+---------------------------------------------------------+
| GA-XXXX, Bentley, CONTINENTAL FLYING SPUR, 2006         |
+---------------------------------------------------------+

// Expected result: (only 3 comma-separated records, not 4)
Run Code Online (Sandbox Code Playgroud)

完整查询:

SELECT *,product_id id,
    (select group_concat(value order by `order` asc SEPARATOR ', ') from slud_data left join slud_types on slud_types.type_id=slud_data.type_id …
Run Code Online (Sandbox Code Playgroud)

mysql sql

9
推荐指数
2
解决办法
6774
查看次数

标签 统计

mysql ×3

eloquent ×1

group-concat ×1

laravel ×1

laravel-5.1 ×1

php ×1

sql ×1