内部にエクササイズが入ったテーブルがあり、エクササイズごとに別のテーブルにいくつかのイラストがあります。イラストを挿入して「位置」属性で並べておきたいです。したがって、イラストを追加すると、「位置」属性は、指定された演習のイラストの数と等しくなります (位置は 0 から始まるため)。
だから私はそのようなことを試しました:
INSERT INTO illustrations (path, date_creation, id_exercise, position)
VALUES (
"2789c0bdda6981fadd87c30af74dfc5d.jpg",
"1384104485",
"4",
(SELECT COUNT(I.id)
FROM illustrations I
WHERE I.id_exercise = 4
GROUP BY I.id_exercise
)
)
このクエリは正常に機能しますが、演習用の図が少なくとも 1 つある場合に限ります。それ以外の場合、サブクエリは null を返し、論理的な「列 'position' を null にすることはできません」というエラーが表示されます。通常、select サブクエリが null を返す場合はゼロを入力します。ISNULL() を試しましたが、正しい構文が見つかりません。なにか提案を ?