数据库中的3个表:
Supplier(id, name, address)
Product(id, name, detail)
Product_Supplier(id, productId, supplierId, quantity)
现在我想获得供应商1(supplierId = 1)提供的所有产品(由所有供应商提供)及其数量。我怎么能在一个SQL查询中做到这一点?
更新:如果使用多个查询,我可以这样做:首先,我从Product
表中获取产品信息,然后使用Product_Supplier
和productId
查询supplierId
表。一个查询中的所有查询都更短,但效率更高吗?
答案 0 :(得分:0)
使用LEFT OUTER JOIN将允许您列出所有产品,但仅获取供应商提供的产品数量。您只需要在连接条件中使用supplierId约束。
SELECT Product.*,
Product_Supplier.quantity
FROM Product
LEFT OUTER JOIN Product_Supplier ON Product.id = Product_Supplier.productId
AND Product_Supplier.supplierId = 1