我有两个 MySQL 表。一张桌子是奖品列表,另一张桌子是获奖者列表。可以有多种类型的奖品可用。
奖
- ID
- 姓名
- 可用的
优胜者
- 姓名
- 奖品编号
如果有 3 个奖品可用,并且目前只有 2 个获奖者将该奖品列为他们的prize_id
,我想插入下一个获奖者。
我试过这个查询:
INSERT INTO winner (name, prize_id)
SELECT 'steve', 1
FROM winner, prize
WHERE (select if(count(w.id) < p.available, 1, 0) as `valid`
from prize p, winner w
where p.id = 1 and w.prize_id = p.id) = 1
prize
如果我把它修剪成这个,它有点工作,但会插入表中存在的尽可能多的行
INSERT INTO prize (name, prize_id)
SELECT 'steve', 1
FROM winner
WHERE 1 = 1;
有没有办法让这个工作?