我有连接表的问题,这些表与其他表没有关系。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