数据库中有3个表:
Supplier(id, name, address)
Product(id, name, detail)
Product_Supplier(id, productId, supplierId, quantity)
现在,如果要由供应商1(supplierId = 1)提供,我想获取所有产品(由所有供应商提供)及其数量。如何在单个sql查询中做到这一点?
更新:如果使用多个查询,我可以这样做:首先,我从
Product
表中获取产品信息,然后使用Product_Supplier
和productId
查询supplierId
表。一个查询中的所有查询是否都较短,但是效率更高? 最佳答案
使用左外部联接将允许您列出所有产品,但仅获得供应商提供的产品数量。您只需要在联接条件中使用vendorId约束。
SELECT Product.*,
Product_Supplier.quantity
FROM Product
LEFT OUTER JOIN Product_Supplier ON Product.id = Product_Supplier.productId
AND Product_Supplier.supplierId = 1
关于mysql - SQL连接条件复杂,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24236529/