sql - 加入同一张表两次sql server
问题描述
我有一个名为 Notes 的表:
我想这样展示:
select n1.note_ecrit, n1.note_tp, n1.note_total, n2.note_ecrit, n2.note_tp, n2.note_total
from Notes n1
inner join Notes n2 on n1.cne = n2.cne
解决方案
你的问题不是很清楚,希望我理解正确。如果您一个接一个地手动列出列,最简单(远非最好!)的解决方案是简单地使用嵌套查询:
SELECT n1.note_ecrit, n1.note_tp, n1.note_total,
(SELECT n2.note_ecrit FROM Notes n2 on n1.cne = n2.cne) as note_ecrit,
(SELECT n2.note_tp FROM Notes n2 on n1.cne = n2.cne) as note_tp,
(SELECT n2.note_total FROM Notes n2 on n1.cne = n2.cne) as note_total
FROM Notes n1
注意:您不必太担心性能,查询 3 个单独的列 3 次。在大多数情况下,SQL 服务器会以某种方式构造查询,即它只会在内部查询记录一次。但它没有被授予;当性能至关重要时,始终测试选项以获得最佳结果。
在某些情况下,更好的方法可能是使用SQL 服务器的STRING_AGG函数将值列出到一个结果字段中,这样的输出格式是可以接受的。
推荐阅读
- php - 你如何使用中间件('auth:api')测试路由?
- scala - 哪种方法更好地检查数据框是否为空?`df.limit(1).count == 0` 还是 `df.isEmpty`?
- python - 在 subprocess.call 中使用变量
- python - TypeError:必须是 str,而不是 StringField
- javascript - 如果在循环内部使用 getter 结果,则强制将其存储在变量中
- r - 如何在我的 Arima 预测图的 xaxis 上获取日期而不仅仅是数字
- javascript - 为什么我的 onClick 在渲染时会激活?
- sql - Oracle 11g DB 链接使用情况
- python-3.x - 通过 package_data 将非 python 文件复制到 Scripts 目录
- chef-infra - 如何从执行资源命令输出中设置节点属性值