这里是我的架构:SQL:帮助与嵌套查询
供应商(SID:整数,SNAME:字符串,地址字符串)
零件(PID:整数, PNAME:字符串,颜色:字符串)
目录(SID:整数,PID:整数,成本:真正的)
大胆表示主键。
我想写一个查询来查找供应每个零件的所有供应商。这里有两个疑问我已经:
-- get all parts for a given supplier
SELECT Parts.pid
FROM Suppliers
JOIN Catalog ON Catalog.sid = Suppliers.sid
JOIN Parts ON Parts.pid = Catalog.pid
WHERE Suppliers.sid = 4;
-- gets all parts that exist
SELECT Parts.pid
FROM Parts
我想做的事,在必要的条件,是这样的:
Define result set
Foreach Supplier:
If the list of parts produced by a supplier
is equal to the total list of parts, add this supplier to the result set
Return result set
我怎样才能转化为MySQL的呢?
我会建议寻找到UNION和减...然后我想起MySQL不支持MINUS,所以你必须找到一种方法来伪造它(并且*有*方法)。但通常情况下,我会说,如果您从“ALL PARTS”列表中减去供应商的零件清单,并且遗留了某些零件,那么该供应商不提供所有零件。 – FrustratedWithFormsDesigner 2010-02-21 04:33:29