sql - 使用左连接从左表中选择前 50 个
问题描述
SELECT TOP(50) * FROM [Cars]
LEFT JOIN [Colors] ON [Cars].[ModelId] = [Colors].[ModelId]
返回50 行,但我想要50 辆汽车,因为每辆汽车有多种颜色 Top(50) 不起作用。
解决方案
如我所见,您没有使用颜色表中的任何信息。在这种情况下,您不需要加入颜色表。
SELECT TOP(50) * FROM [Cars]
如果您正在寻找汽车的每种颜色,那么您可能应该对颜色和汽车一起使用列表聚合函数。假设 color 是 Colors 中的列名
SELECT TOP(50) *,
STRING_AGG([Colors].color, ',') WITHIN GROUP (ORDER BY color) AS colors
FROM [Cars]
LEFT JOIN [Colors] ON [Cars].[ModelId] = [Colors].[ModelId]
推荐阅读
- python - 无法将 CustomModel 分配给 QQmlListModel
- javascript - 检查 setInterval 内的条件时,clearInterval 不起作用
- flutter - 更改按钮 onPressed 的背景颜色和文本颜色,并在未按下时设置回默认值 Flutter
- javascript - Javascript json读取数据
- azure-devops - 从 Power BI 中的 Azure DevOps 创建跨组织的 Sprint Burndown 图表
- angular - 如何在 fullCalendar 中显示新事件
- python - assert_frame_equal 导出数据帧和失败断言的差异
- invoke - 如何覆盖 pyinvoke 先前定义的规则,但“super()”调用较旧的实现?
- python-3.x - Airflow:从 Kafka 获取消息
- scala - Akka Streams 按源单累积