我需要从第二个表中选择一些行,并用逗号分隔的字符串连接它们.除了一个问题之外,查询工作正常 - 它总是选择所有行并忽略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) 其中一个答案给出了正确的代码来显示完整的树.我需要的是始终显示第一级(深度= 0)和兄弟姐妹+孩子的活动列表项.目标是当用户选择列表项时扩展树的可见部分,该列表项是更多列表项的父项.
所以,如果我有这个清单:
1. item
2. item
2.1. item
2.2. item
2.2.1. item
2.2.2. item
2.2.3. item
2.3. item
2.4. item
2.4.1. item
2.4.2. item
3. item
4. item
4.1. item
4.2. item
4.2.1. item
4.2.2. item
5. item
Run Code Online (Sandbox Code Playgroud)
如果当前列表项为"2",则列表应如下所示:
1. item
2. item // this needs class .selected
2.1. item
2.2. item
2.3. item
2.4. item
3. item
4. item
5. item
Run Code Online (Sandbox Code Playgroud)
如果当前列表项是"2.2.",列表应如下所示:
1. item
2. item // this needs class .selected
2.1. item
2.2. item // …
Run Code Online (Sandbox Code Playgroud) 我需要在子查询中执行子查询,导致'where子句'中的"未知列't1.product_id'".在我的例子中,它在第7行.如何解决这个问题呢?
SELECT *,product_id id,
(SELECT GROUP_CONCAT (value ORDER By `order` ASC SEPARATOR ', ')
FROM (
SELECT `order`,value
FROM slud_data
LEFT JOIN slud_types ON slud_types.type_id=slud_data.type_id
WHERE slud_data.product_id = t1.product_id
AND value!='' AND display=0
LIMIT 3
) tmp) text
FROM slud_products t1
WHERE
now() < DATE_ADD(date,INTERVAL +ttl DAY) AND activated=1
ORDER BY t1.date DESC
Run Code Online (Sandbox Code Playgroud)