我有这两个桌子
*tableA
id - name
1 - a
2 - b
*tableB
col - name
a - red
b - green
b - white
a - black
以及此查询
SELECT a.id
, a.name
, b.name
FROM tableA a
LEFT
JOIN tableB b
ON A.name = B.id
我有
1 - a - black
1 - a - red
2 - b - green
2 - b - white
现在我想加入另一个tableC来根据位置获取前4个元素
tableC
pos - name
1 - first
2 - second
3 - third
4 - fourth
5 - fifth
有这个结果
1 - a - black - first
1 - a - red - second
2 - b - green - third
2 - b - white - fourth
如何使用rowNumber-> tableC.pos联接最后一个表
答案 0 :(得分:1)
尝试将行号添加到您的第一个查询中,如下所示,并在加入tableC时使用它:
DECLARE @row_number int := 0;
select t.*, c.name
from (
SELECT a.id, a.name, b.name, (@row_number:=@row_number + 1) AS rn
FROM tableA a
LEFT JOIN tableB b ON A.name = B.col
) t
left join tableC c on c.pos = t.rn