我有連接表的問題,這些表與其他表沒有關係。MYSQL連接表和範圍
表結構
用戶
╔════╦═════════════╗
║ ID ║ Name ║
╠════╬═════════════╣
║ 1 ║ Jon ║
║ 2 ║ Mark ║
║ 3 ║ Tom ║
╚════╩═════════════╝
機會
╔════╦════════════╦═════════════╗
║ ID ║ user_id ║ total_price ║
╠════╬════════════╬═════════════╣
║ 1 ║ 2 ║ 1500 ║
║ 2 ║ 2 ║ 2000 ║
║ 3 ║ 1 ║ 1000 ║
╚════╩════════════╩═════════════╝
水平
╔════╦════════════╦═════════════╦══════════╦════════╗
║ ID ║ Name ║ parent_id ║ min ║target ║
╠════╬════════════╬═════════════╬══════════╬════════╣
║ 1 ║ Golden ║ 0 ║ 1000 ║ 5000 ║
║ 2 ║ golden-1 ║ 1 ║ 1000 ║ 2500 ║
║ 3 ║ golden-2 ║ 1 ║ 2551 ║ 5000 ║
║ 4 ║ Silver ║ 0 ║ 500 ║ 999 ║
║ 5 ║ Silver-1 ║ 4 ║ 500 ║ 750 ║
╚════╩════════════╩═════════════╩══════════╩════════╝
我想獲得用戶的水平,如果他的機會總和總價範圍內min
水平和target
之間我這個查詢嘗試,但它顯示錯誤[HY000][1111] Invalid use of group function
SELECT
`users`.`id` AS `user_id`,
`users`.`name` AS `user_name`,
SUM(opportunities.total_price) AS `total_target`,
`levels`.`name` As `Level_name`
FROM `users`
INNER JOIN `opportunities` ON `users`.`id` = `opportunities`.`user_id`
INNER JOIN `levels` ON SUM(opportunities.total_price) >= levels.min
AND SUM(opportunities.total_price) <= levels.target
WHERE `users`.`deleted_at` IS NULL
GROUP BY user_id
注:我使用Laravel 5.2
'SUM'不能在'join'中使用。 「水平」與其他兩張桌子有什麼關係? – Blank
你不能在任何我曾經使用過的數據庫中加入SUM的結果。 –
關卡表與任何其他表之間沒有關係。 – Ahmed