[英]SQL - If id exists in table1, then insert record into table2
我有以下問題。 我有一個帳戶和一個記分牌表,我嘗試通過插入一條值為 0 的新記錄來重置記分牌中月底的所有值。
SET @mid = (SELECT MAX(id) AS mid FROM accounts);
WHILE (@mid > 0)
BEGIN
IF @mid NOT IN (SELECT id FROM accounts) DO CONTINUE;
INSERT INTO scoreboard("uid", "balance", "date") VALUES (@mid, 0,(SELECT CURRENT_DATE()));
SET @mid = @mid - 1;
END
但無論我嘗試什么,它都會中斷,我不知道為什么。
MySQL:mysqlnd 5.0.12-dev-20150407
MariaDB:10.3.27-MariaDB-0+deb10u1
帳戶
ID | 姓名 |
---|---|
1 | 玩 |
3 | 用戶 2 |
記分牌
uid | 平衡 | 日期 |
---|---|---|
1 | 20 | 2021-03-09 |
記分牌
uid | 平衡 | 日期 |
---|---|---|
1 | 20 | 2021-03-09 |
1 | 40 | 2021-03-31 |
3 | 30 | 2021-03-31 |
1 | 0 | 2021-04-01 |
3 | 0 | 2021-04-01 |
你想要這樣的東西嗎?
insert into scoreboard (uid, balance, date)
select a.id, 0, curdate()
from accounts a;
這將為account
中的每一行在scoreboard
中插入一個新行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.