mysql - mysql将参数传递给子查询
问题描述
我有这张桌子:
select a.id, a.title, a.link, a.mclass, b.myids
from menu a
left outer join ( select parent, GROUP_CONCAT(id SEPARATOR ',') as myids
from menu
where parent = id
group by parent) b ON a.id = b.parent
where a.parent='0' and mid='horizontal'
我对特殊 id 的内部选择这样做:
select parent, GROUP_CONCAT(id SEPARATOR ',') as myids
from menu
where parent = '256'
无法得到这个结果
解决方案
您可以对表和聚合进行自联接:
SELECT m1.id, m1.title, m1.link, m1.mclass,
GROUP_CONCAT(m2.id) myids
FROM menu m1 LEFT JOIN menu m2
ON m2.parent = m1.id
WHERE m1.parent = '0' AND m1.mid = 'horizontal'
GROUP BY m1.id, m1.title, m1.link, m1.mclass
推荐阅读
- dart - 容器不占用 BoxDecoration 图像的大小
- php - Woocommerce 使用名称获取产品属性 ID
- selenium - 在 Firefox Selenium IDE 上看不到文件/编辑/操作菜单栏
- php - 显示空白字段的服务器端验证以及从一页到另一页显示消息的最佳方式是什么?
- jquery - 平滑引导列下降
- scala - Spark 提交并行作业
- if-statement - 在 CLIPS 中使用 if-then-else 和事实
- jquery - 在 React 应用程序中无法弄清楚 Spotify 的授权
- android-studio - com.android.support:appcompat-v7:27.1.1 与 media-compat:25.2.0 不匹配
- python-3.x - 减少火花返回字典而不是数据帧中的操作