繁体   English   中英

SQL连接条件复杂

[英]SQL join with complicated condition

数据库中有3个表:

Supplier(id, name, address)
Product(id, name, detail)
Product_Supplier(id, productId, supplierId, quantity)

现在,如果要由供应商1(supplierId = 1)提供,我想获取所有产品(由所有供应商提供)及其数量。 如何在单个sql查询中做到这一点?

更新:我能做到这一点,如果使用多个查询:首先我从获得产品信息, Product表,然后查询Product_SupplierproductIdsupplierId 一个查询中的所有查询是否都较短,但是效率更高?

使用左外部联接将允许您列出所有产品,但仅获得供应商提供的产品数量。 您只需要在联接条件中使用vendorId约束。

SELECT Product.*,
       Product_Supplier.quantity
FROM Product
LEFT OUTER JOIN Product_Supplier ON Product.id = Product_Supplier.productId
                                       AND Product_Supplier.supplierId = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM