如何不使用子查询筛选与sicilliano披萨country字段相同的披萨数据
SQL查询实现方案
问题背景
现有披萨数据表结构及数据如下:
pizza |price|country|base ----------------------------------- americano | 2 | U.S | wholemeal funghi | 3 | Italy | wholemeal sicilliano| 7 | Italy | wholemeal
需求为:查询所有与sicilliano披萨country字段取值相同的披萨条目,禁止使用子查询。
实现思路
采用表自连接的方式实现,不需要使用子查询:
- 对同一张披萨表做别名映射,分别命名为
t1、t2 - 两表的连接条件设置为
country字段取值相等 - 对
t1表添加筛选条件,仅保留pizza = 'sicilliano'的条目 - 最终直接输出
t2表的所有匹配条目即可
可运行SQL代码
SELECT t2.* FROM pizza AS t1 INNER JOIN pizza AS t2 ON t1.country = t2.country WHERE t1.pizza = 'sicilliano';
注:请将SQL中的表名pizza替换为你实际使用的表名
输出结果
运行后得到的符合要求的条目如下:
pizza |price|country|base ----------------------------------- funghi | 3 | Italy | wholemeal sicilliano| 7 | Italy | wholemeal
内容的提问来源于stack exchange,提问作者czarniecki
相关产品推荐
相关产品推荐

