我有4张桌子: -system_users -quotes -quote_items -new_products
,其中
system_users.id = quotes.created_by
quotes.id = quote_items.quote_id
new_products.id = quote_items.new_product_id
我正在尝试查找特定商店的总报价(价格)(system_users.store_id) 到目前为止,我有这个不起作用:
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
查询肯定在第二次INNER JOIN失败,我不明白为什么。 第一个连接应该获取特定商店中所有用户的所有引号。 第二个连接应该使用上面结果中的quote_ids获取所有quote_items。 第三次加入应从新结果中获取产品并总结价格。
答案 0 :(得分:1)
您不能在查询中使用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
您可以在AND
子句中使用ON
来加入多个条件