0

我需要帮助编写下面所述问题的 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
4

1 回答 1

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'
于 2013-01-17T13:41:36.953 回答