Saya mempunyai skema seperti ini: jadual pengguna dengan atribut "user_id" dan "username" dan jadual pesanan dengan atribut "customer_id" (FK user_id) dan "finalPrice" skema pangkalan data Saya ingin mendapatkan pengguna dengan harga tertinggi antara semua kombinasi pesanan (pada asasnya jumlah semua nilai Harga Akhir untuk pesanan, dengan customer_id = user_id) Tidak dapat memikirkan penyelesaian supaya sebarang sokongan akan dihargai
select sum( (select o.final_price from `order` o where u.user_id=o.customer_id)) from user u group by u.user_id
itulah yang saya cuba, tetapi saya terus mendapat “子查詢返回超過(guò) 1 行”
mesej ralat. Cuba membaca dokumentasi, tetapi saya masih tidak berpengalaman dengan SQL.
Berdasarkan pertanyaan anda
Anda tidak boleh menggunakan SUM
函數(shù),而是使用內(nèi)部的 SUM,這就是為什么它會(huì)拋出類(lèi)似 Subquery 返回超過(guò) 1 行的錯(cuò)誤
SELECT u.user_id, (SELECT SUM(o.final_price) FROM `order` o WHERE u.user_id=o.customer_id) FROM user u GROUP BY u.user_id;