そのサブクエリは、それぞれの個別のカウントを提供しますprop_id
。にはカウント値を 1 つだけ割り当てることができますprop_count
。prop_ids に対応する in 複数の行を更新する場合は、 inと対応するinprop_count
を関連付ける相関サブクエリを更新に追加する必要があります。prop_id
tbl_bookings
prop_id
tbl_listings
あなたの質問についてもっと考えると、更新ではなく空の tbl_listings テーブルに挿入するつもりだったのだろうかと思います。次のコマンドでそれを行うことができます:
INSERT INTO tbl_listings(prop_id,prop_count)
SELECT prop_id, COUNT(*) as prop_count
FROM tbl_bookings
GROUP BY prop_id
本当に更新するつもりで、それぞれprop_id
がテーブルに存在すると想定しているtbl_listings
場合は、次の更新を発行できます。
UPDATE tbl_listings
SET prop_count=(SELECT COUNT(*)
FROM tbl_bookings AS TB
WHERE TB.prop_id=TL.prop_id)
FROM tbl_listings AS TL
tbl_listings
新しい prop_ids fromtbl_bookings
とそれぞれのカウントを挿入して更新する場合は、次のようにします。
INSERT INTO tbl_listings(prop_id,prop_count)
SELECT prop_id, COUNT(*) as prop_count
FROM tbl_bookings AS TB
WHERE NOT EXISTS(SELECT prop_id -- Insert only new prop_ids/counts
FROM tbl_listings AS TL
WHERE TL.prop_id=TB.prop_id)
GROUP BY prop_id