我有一张这样的桌子
id sequence phase characteristics
1 1 300 001
2 1 300 001
2 2 300 002
..
另一个表格包含每个阶段的许多特征
phase characteristics
300 003
300 004
300 005
....
我需要将所有特征添加到每个 id/序列,其中阶段为 300
为了更好地理解我需要的是
id sequence phase characteristics
1 1 300 001
1 1 300 003
1 1 300 004
1 1 300 005
2 1 300 001
2 1 300 003
2 1 300 004
2 1 300 005
2 2 300 002
2 2 300 003
2 2 300 004
2 2 300 005
..
我尝试了几种解决方案,但我不精通SQL。有人可以提供帮助吗?先谢谢你了
您可以在表之间使用 CROSS JOIN,将所有特性获取到一个 pahse
SELECT
s.id, s.sequence, s.phase , c.characteristics
FROM table1 s CROSS JOIN characteristics c
ON s.phase = c.phase
所以看起来您想要扩展表中每个 id/sequwnce 组合的行,其中 is 阶段为 300 。
这里有一个sql查询
WITH Allcharachteristics As (
select '001' AS characheristic
UNION ALL
Select '002'
UNION ALL
Select '003'
UNION ALL
Select '004'
UNION ALL
Select '005'
-- Add more characteristics if needed
)
Select t.id, t.sequence, t.phase, c.characteristic
From YourTable t
Cross Join Allcharachteristics c
where t. phase = 300
Order by t.id, t.sequence, c.characteristic;
//希望这会有所帮助,有些字符是大写的,所以请正确填写