簡體   English   中英

SQL - 如果表 1 中存在 id,則將記錄插入表 2

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM