MySQLテーブルが2つあります。1つの表は賞品のリストで、もう1つの表は受賞者のリストです。賞品には複数の種類があります。
賞
- id
- 名前
- 利用可能
勝者
- 名前
- Prize_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;
これを機能させる方法はありますか?