我需要帮助为下面提到的问题编写SQL查询。我假设我必须使用除法,但我不知道该怎么做。
假设以下关系:S(对于供应商),SP(对于交付)和P(对于部件) 通过在SQL中编写查询来回答以下问题:
)哪些供应商仅提供伦敦的零件?
请注意,该问题仅询问伦敦的零件,而不是每个供应伦敦零件的供应商。
S:
S# SNAME CITY
S7 Lowen Berlin
S8 Jeter N.Y.
S9 Kling Berlin
SP:
S# P# QTY
S7 P2 300
S7 P3 400
S8 P2 300
S9 P4 500
P:
P# NAME COLOR CITY
P1 Bolt Blue Berlin
P3 Nut Red Paris
P2 Cog Red Rome
P4 Screw Green Paris
答案 0 :(得分:0)
显然,在你的例子中,只要伦敦没有零件,就没有这样的供应商。 尝试使用以下查询:
SELECT S.S#,max(S.SNAME) from S
LEFT JOIN SP on (S.S#=SP.S#)
LEFT JOIN P on (SP.P# = P.P#)
GROUP BY S.S#
HAVING MAX(P.CITY)='London' and MIN(P.CITY)='London'