Mysql 结果上的多个内部联接
我有4张桌子: -系统用户 -引用 -报价单 -新产品 在哪里 我正在尝试查找特定商店(system\u users.store\u id)的总报价(price) 到目前为止,我有一个不起作用的方法:Mysql 结果上的多个内部联接,mysql,sum,inner-join,Mysql,Sum,Inner Join,我有4张桌子: -系统用户 -引用 -报价单 -新产品 在哪里 我正在尝试查找特定商店(system\u users.store\u id)的总报价(price) 到目前为止,我有一个不起作用的方法: SELECT ROUND(SUM( s.price),2) FROM quotes INNER JOIN system_users ON quotes.created_by = system_users.id INNER JOIN quote_items p
SELECT ROUND(SUM( s.price),2)
FROM quotes
INNER JOIN system_users
ON quotes.created_by = system_users.id
INNER JOIN quote_items p
ON p.id = quote_id Where system_users.store_id = 14
INNER JOIN new_products s
ON s.id = new_product_id
Where system_users.store_id = 1
查询在第二个内部连接处肯定失败了,我不明白为什么。
第一个连接应该获得特定存储中所有用户的所有报价。
第二个联接应该从上面的结果中获得所有带有quote_ID的quote_项。
第三个联接应该从新结果中获取产品并对价格求和。在查询中不能两次使用
WHERE
子句
SELECT ROUND(SUM( s.price),2)
FROM quotes
INNER JOIN system_users
ON quotes.created_by = system_users.id
INNER JOIN quote_items p
ON p.id = quote_id AND system_users.store_id = 14
INNER JOIN new_products s
ON s.id = new_product_id
Where system_users.store_id = 1
您可以在
ON
子句中使用和
来加入多个条件道歉,这些条件不应该存在。thanks@mrcurious那么,为什么它还在那里!?!?当你说“失败”时,如果你能清楚地说明你是如何判断它失败的,那将是很有帮助的。对于示例,返回的值是否不正确?如果是这样的话,您能否提供该查询的表内容和预期结果的最小示例?
SELECT ROUND(SUM( s.price),2)
FROM quotes
INNER JOIN system_users
ON quotes.created_by = system_users.id
INNER JOIN quote_items p
ON p.id = quote_id AND system_users.store_id = 14
INNER JOIN new_products s
ON s.id = new_product_id
Where system_users.store_id = 1