我尝试在mysql中进行以下查询:
找到供应所有红色或绿色零件的供应商的ID。
表格的结构如下:
proveedores(ID: int (PK), nombre: nvarchar, direccion: nvarchar)
partes(ID: int (PK), nombre: nvarchar, color: nvarchar)
catalogo(proveedores_ID: int (FK), partes_ID: int (FK), costo: double)
我已经设法做了一个查询,使我可以看到供应商的ID,分发所有部分的红色或绿色视情况而定。
使用“红色”或“绿色”的查询如下:
SELECT DISTINCT C.proveedores_ID FROM fabrica.catalogo C
WHERE NOT EXISTS (
SELECT P.ID FROM fabrica.partes P
WHERE P.color = "red" AND ( NOT EXISTS (
SELECT C1.proveedores_ID FROM fabrica.catalogo C1
WHERE C1.proveedores_ID = C.proveedores_ID AND C1.partes_ID = P.ID
)
)
);
但是我无法将它组合起来生成一个查询,该查询允许我返回先前给定的需求。如果有人能帮我达到预期的效果,我将不胜感激。
1条答案
按热度按时间xmq68pz91#
你可以加入两个
NOT EXISTS
具有OR
如果供应商没有销售红色零件,或者没有销售绿色零件: