我需要检查玩家表中的每个玩家是否已经在历史表中,如果不是我需要在历史表中插入然后在项目表上给出一个项目(另一个插入)。
我已经有了这个代码,但我不知道如何为一个选择运行两个不同的插入,我一直在搜索,但也许我应该使用IF和那么?
这是我的问题:
INSERT INTO tb_item (player_id, friend_id, item_id)
SELECT 1, id, 101 FROM tb_player
WHERE vip = 1
AND creation_date BETWEEN now() - INTERVAL '2 year' AND now() - INTERVAL '1 years'
AND id NOT IN ( SELECT ig.player_id FROM tb_history ig WHERE ig.item_id = 101
答案 0 :(得分:1)
您可以使用http://woocommerce.github.io/woocommerce-rest-api-docs/#pagination这样插入
WITH inserted_item AS (
INSERT INTO tb_item (player_id, friend_id, item_id)
SELECT 1, id, 101 FROM tb_player
WHERE vip = 1
AND creation_date BETWEEN now() - INTERVAL '2 year'
AND now() - INTERVAL '1 years'
AND id NOT IN (
SELECT ig.player_id FROM tb_history ig WHERE ig.item_id = 101
)
RETURNING *
)
INSERT INTO tb_history (some_col1, some_col2, some_col3)
SELECT player_id, friend_id, item_id
FROM inserted_item
答案 1 :(得分:0)
你不能这样做,你必须使用两个插入语句,其他方式来实现它,当第一个表中的insert将自动插入第二个表时(或者另一个insert语句),通过使用表的触发器