SQL查询执行语句

时间:2017-02-26 18:23:57

标签: mysql sql sql-server

我是SQL的初学者。我想执行此查询,但执行它有困难。 “提供与琼斯属于同一城市的所有供应商的S#和SNAME?(琼斯独家)”。表低于

TABLE S

3 个答案:

答案 0 :(得分:5)

希望我能正确理解你的问题。

请查看以下查询。

select s# , sname 
from S 
where city in (select city from S where sname='Jones') 
and     sname<>'Jones';

答案 1 :(得分:1)

问题实际上是问你两件事:琼斯与哪个城市有关?显然巴黎。现在我们知道了这一点,下一个问题(首先是显示,但你必须在里面思考),是巴黎城市所有行的S#和SNAME。

因此,您可以先执行SELECT CITY FROM S WHERE SNAME = "Jones",保存结果并在下一个查询中使用SELECT S#, SNAME FROM S WHERE CITY = "The results of your last query"

我们可以将其浓缩为

SELECT S#, SNAME FROM S WHERE CITY = (SELECT CITY FROM S WHERE NAME = "JONES")

由于查询不包括琼斯,您只需添加

即可
AND NAME != "JONES" 

答案 2 :(得分:0)

您可以通过多种方式完成此任务。到目前为止发布的所有答案都是完全有效的,并且可以正常工作;但也有其他选择。就个人而言,我会使用自我加入:

list2 = {z[0]: z[1].strip() for z in list(map(lambda i: i.split(":"), list1))}