可能的双嵌套sql查询?
我正在尝试创建嵌套SQL查询,它必须是嵌套SQL查询才能生成以下结果: 获得与任何客户享有相同折扣的所有客户 在达拉斯或伦敦 以下是包含四个表的数据库:可能的双嵌套sql查询?,sql,postgresql,nested-queries,nested-query,Sql,Postgresql,Nested Queries,Nested Query,我正在尝试创建嵌套SQL查询,它必须是嵌套SQL查询才能生成以下结果: 获得与任何客户享有相同折扣的所有客户 在达拉斯或伦敦 以下是包含四个表的数据库: DATABASE CAP 2: Customers cid name city discount c001 Tiptop Duluth 10.00 c002 Basics Dallas 12.00 c003 Allied Dallas 8.00 c004 ACME
DATABASE CAP 2:
Customers
cid name city discount
c001 Tiptop Duluth 10.00
c002 Basics Dallas 12.00
c003 Allied Dallas 8.00
c004 ACME Duluth 8.00
c005 WeylandYutani Acheron 0.00
c006 ACME Kyoto 0.00
Orders
ordno mon cid aid pid qty dollars
1011 jan c001 a01 p01 1000 450.00
1013 jan c002 a03 p03 1000 880.00
1015 jan c003 a03 p05 1200 1104.00
1016 jan c006 a01 p01 1000 500.00
1017 feb c001 a06 p03 600 540.00
1018 feb c001 a03 p04 600 540.00
1019 feb c001 a02 p02 400 180.00
1020 feb c006 a03 p07 600 600.00
1021 feb c004 a06 p01 1000 460.00
1022 mar c001 a05 p06 400 720.00
1023 mar c001 a04 p05 500 450.00
1024 mar c006 a06 p01 800 400.00
1025 apr c001 a05 p07 800 720.00
1026 may c002 a05 p03 800 740.00
Agents
aid name city percent
a01 Smith New York 6
a02 Jones Newark 6
a03 Brown Tokyo 7
a04 Gray New York 6
a05 Otasi Duluth 5
a06 Smith Dallas 5
a08 Bond London 7
Products
pid name city quantity priceUSD
p01 comb Dallas 111400 0.50
p02 brush Newark 203000 0.50
p03 razor Duluth 150600 1.00
p04 pen Duluth 125300 1.00
p05 pencil Dallas 221400 1.00
p06 folder Dallas 123100 2.00
p07 case Newark 100500 1.00
p08 clip Newark 200600 1.25
我遇到的问题是,我无法抓住那些享受同等折扣的客户,但我该怎么做呢?任何帮助都将不胜感激
这就是我到目前为止所做的:
SELECT name FROM customers WHERE cid in (
SELECT cid from customers where discounts in...
任何帮助都将不胜感激 只需从这些城市的所有客户处获得折扣,然后选择所有具有相同折扣的客户即可
SELECT *
FROM Customers
WHERE discount in (SELECT discount FROM Customers WHERE city in ("Edmonton", "Calgary"));
向阿尔伯塔省呼喊。只要从这些城市的所有客户那里获得折扣,然后选择所有具有相同折扣的客户即可
SELECT *
FROM Customers
WHERE discount in (SELECT discount FROM Customers WHERE city in ("Edmonton", "Calgary"));
向阿尔伯塔省大声喊叫。只是根据我的评论补充了一些澄清 按如下方式使用查询:
select *
from customers
where discount in (
select DISTINCT discount
from customers
where city in ('Dallas', 'London')
)
and city not in ('Dallas', 'London');
例如:
让我们来分析一下:我加了折扣。内部查询选择来自客户的不同折扣,其中“达拉斯市”、“伦敦”为我们提供来自达拉斯和伦敦的客户获得的折扣。我们只是选择不同的信息
然后,我们要求不在达拉斯和伦敦的客户提供所有记录。此外,我们只需要那些折扣与内部查询匹配的记录。只是根据我的评论添加一些澄清 按如下方式使用查询:
select *
from customers
where discount in (
select DISTINCT discount
from customers
where city in ('Dallas', 'London')
)
and city not in ('Dallas', 'London');
例如:
让我们来分析一下:我加了折扣。内部查询选择来自客户的不同折扣,其中“达拉斯市”、“伦敦”为我们提供来自达拉斯和伦敦的客户获得的折扣。我们只是选择不同的信息
然后,我们要求不在达拉斯和伦敦的客户提供所有记录。此外,我们只需要那些折扣与内部查询匹配的记录。请不要链接到其他网站以获取重要的问题信息。Stackoverflow的想法是允许将来的其他人也使用这里的答案来找到自己问题的解决方案。如果重要的信息在一个已经失效的链接上,他们就不能这样做。对不起,这里还是新的。我会用问题中的信息编辑这篇文章也许一些样本数据和期望的输出会有帮助?我想我知道你在问什么,但我所做的假设在你的问题中并不清楚。数据有时胜于雄辩例如,早期的请求需要订购两种产品的客户的ID:p01和p07。查询为SELECT DISTINCT cid from orders in SELECT cid from orders pid='p01'和cid in SELECT cid from orders pid='p07';如果cid字符4 c001 c006或第一个和第六个客户满足要求,您只需执行以下操作:选择*从“达拉斯”、“伦敦”所在城市的客户中选择折扣?这里有一个例子:。这就是你想要的吗?请不要链接到其他网站以获取重要的问题信息。Stackoverflow的想法是允许将来的其他人也使用这里的答案来找到自己问题的解决方案。如果重要的信息在一个已经失效的链接上,他们就不能这样做。对不起,这里还是新的。我会用问题中的信息编辑这篇文章也许一些样本数据和期望的输出会有帮助?我想我知道你在问什么,但我所做的假设在你的问题中并不清楚。数据有时胜于雄辩例如,早期的请求需要订购两种产品的客户的ID:p01和p07。查询为SELECT DISTINCT cid from orders in SELECT cid from orders pid='p01'和cid in SELECT cid from orders pid='p07';如果cid字符4 c001 c006或第一个和第六个客户满足要求,您只需执行以下操作:选择*从“达拉斯”、“伦敦”所在城市的客户中选择折扣?这里有一个例子:。这就是您想要的吗?字符串值需要在SQL中用单引号括起来,双引号用于列和表名。埃德蒙顿引用的是列,而不是常量值。您需要使用“Edmonton”字符串值需要在SQL中用单引号括起来,双引号用于列和表名。埃德蒙顿引用的是列,而不是常量值。你需要用“埃德蒙顿”