在这个例子中如何用除法编写SQL查询?

时间:2013-01-17 13:24:28

标签: sql mysqli

我需要帮助为下面提到的问题编写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

1 个答案:

答案 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'
相关问题