对于下列表格;SQL在彼此之上添加行而不是在旁边
PRICE_TABLE FACT_TABLE
P_ID P_ID
1 0
2 0
3 0
... ....
我想获得的PRICE_TABLE
P_ID
值到FACT_TABLE
。我已经使用了以下查询;
INSERT INTO FACT_TABLE(P_ID) SELECT P_ID FROM PRICE_TABLE
我在FACT_TABLE
几个类似领域与其他表IE浏览器。 SALES_TABLE
其中S_ID
需要以相同的方式来过。
但是像这样运行查询;
INSERT INTO FACT_TABLE(P_ID) SELECT P_ID FROM PRICE_TABLE
INSERT INTO FACT_TABLE(S_ID) SELECT S_ID FROM SALES_TABLE
将加到另一个的上面第二INSERT
语句,所以当第一组已经完成了第二只的ID开始。
例如。
FACT_TABLE
P_ID S_ID
1 NULL
2 NULL
3 NULL
NULL 1
NULL 2
NULL 3
... ...
任何人有任何建议吗?
协会就如何行应该知道这与去你不能关联? SQL表没有固有的顺序。 – Paparazzi
INSERT语句总是添加新行。从上面的描述我不确定你的预期行为是什么,但是如果你想更新第一批用P_IDs创建的行以获得S_IDs,那么你需要使用UPDATE语句来更新现有的行,而不是添加新的? – PulseLab
“PRICE_TABLE”和“SALES_TABLE”之间是否有任何关系? –