0
我有一个表如下:SQLite更新与连接不可能,我用什么?
ID Col_A Col_B
1 P-1 123
2 S 123
3 P-3 456
4 S 456
ID是主键。
我想要做的是根据Col_B等价将第1行和第3行的ID连接到第2行和第4行的Col_A。换句话说,在Col_A ='S'的情况下,在Col_B中找到具有相同值的行的ID,并将该ID添加到Col_A。
其结果将是:
1 P-1 123
2 S-1 123
3 P-3 456
4 S-3 456
可能有人请告诉我如何写在SQLite的这个查询,我没有成功。
在SQL Server中我使用内部连接在同一个表,这个工程:
UPDATE A
SET A.Col_A = 'S-' + CAST(B.ID as VARCHAR(24))
FROM Table1 A
INNER JOIN Table1 B ON
A.Col_B = B.Col_B
WHERE A.Col_A = 'S';
至于我可以告诉你不能使用更新内SQLite的联接,但没有想法做什么来代替。
我曾尝试:
UPDATE Table1
SET Col_A = 'S' || (SELECT B.ID from Table1 B WHERE B.Col_B = Col_B)
WHERE Col_A = 'S';
这导致:
1 P-1 123
2 S-1 123
3 P-3 456
4 S-1 456
CL你介意写出的查询,所以我可以确切地明白你的意思?我已经尝试了各种版本的表前缀,并且它们都有相同的结果。 '连接'在同一张桌子上,所以很混乱。 – Alex
谢谢,辉煌! – Alex