对于以下表格;
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
中有几个与其他表相对应的类似字段,即。 SALES_TABLE
S_ID
需要以同样的方式过来。{/ p>
然而像这样运行查询;
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仅在第一个ID完成时开始。
例如
FACT_TABLE
P_ID S_ID
1 NULL
2 NULL
3 NULL
NULL 1
NULL 2
NULL 3
... ...
有人有任何建议吗?
答案 0 :(得分:1)
如果你想要他们全部 如果没有任何内容可以作为
的关联,则无法关联INSERT INTO FACT_TABLE (P_ID, S_ID)
SELECT P_ID, S_ID
FROM PRICE_TABLE
CROSS JOIN SALES_TABLE
答案 1 :(得分:0)
您正在运行两个单独的插入内容。所以第一个运行并填充P_ID然后第二个运行并填充S_ID。您希望将两个插入合并为一个。
INSERT INTO FACT_TABLE (P_ID, S_ID)
VALUES (pt.P_ID, st.S_ID)
FROM PRICE_TABLE pt
INNER JOIN SALES_TABLE st
on st.P_ID = pt.P_ID
以上假设PRICE_TABLE和SALES_TABLE有一个公共列(在本例中为P_ID)。如果他们不需要提供有关您尝试完成的内容的更多信息(您是否希望每个S_ID都有P_ID,那么您只需要P_ID = S_ID等)。