0

我有 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。第三个连接应该从新结果中获取产品并对价格求和。

4

1 回答 1

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

您可以ANDON子句中使用多个条件进行连接

于 2013-08-20T11:28:06.430 回答