还是一个SQL问题。
我要做的第一件事就是加入表格: 从目录c JOIN部分中选择SID p ON c.PID = p.PID; 我尝试了hading子句,但是我没有聚合函数,使用'where'是没有用的,因为这样我会得到所有提供红色部分的供应商。
是否有一个概括的答案?这样我也可以获得仅提供绿色零件的供应商?
所需的输出:
SID
-----
S2
提供的表格:
SELECT * FROM parts
PID PNAME COLOR WEIGHT CITY
----- ---------- ---------- ------ ----------
P1 Nut red 13 London
P2 Bolt black 18 Paris
P3 Screw red 17 Rome
P4 Screw silver 14 London
P5 Cam trans 12 Paris
P6 Cog cyan 19 London
P7 Nut magenta 15 -
P8 Wheel red 15 Munich
P9 Bearing green 15 Milano
9 record(s) selected.
SELECT * FROM catalog
SID PID COST
----- ----- ------------
S1 P3 0.50
S1 P4 0.50
S1 P8 11.70
S2 P1 16.50
S2 P3 0.55
S2 P8 7.95
S3 P8 12.50
S3 P9 1.00
S4 P5 2.20
S4 P6 1247548.23
S4 P7 1247548.23
11 record(s) selected.
感谢您的大力帮助。
答案 0 :(得分:0)
您确实想要聚合。一种方法是使用min()
和max()
比较颜色:
select c.SID
from cat c JOIN
part p
ON c.PID = p.PID
group by c.SID
having min(p.color) = max(p.color) and -- all colors are the same
min(p.color) = 'red' -- and that color is 'red'