我很难创建一个smth查询,听起来像这样: 什么是比灰盒洗涤剂花费更多的物品的名称和颜色(2个属性:颜色:灰色,类型:洗涤剂)。
注意:我不允许使用子查询或将价格用作常量。
使用子查询我设法得到了这个:
SELECT name, color
FROM items
WHERE cost > (SELECT price FROM items WHERE type='detergent' AND color='grey');
关于如何在不使用子查询的情况下获得上述查询的任何想法?
我的想法已经不多了......
答案 0 :(得分:5)
您可以使用联接自我。
SELECT i1.name, i1.color
FROM items i1
INNER JOIN items i2
ON (i2.type = 'detergent'
AND i2.color = 'grey'
AND i1.cost > i2.cost)
答案 1 :(得分:0)
SELECT名称,颜色 从项目t1 加入(SELECT price FROM items WHERE type ='detergent'AND color''bray')t2 在t1.price> t2.price;
答案 2 :(得分:-1)
这样:
SELECT distinct others.name, others.color
FROM items others
Join items GreyDet
On others.Price > greyDet.Price
WHERE others.type <> 'detergent'
And others.Color <> 'grey'
And greyDet.type = 'detergent'
And greyDet.Color = 'grey';
注意:此解决方案将输出限制为仅非灰色洗涤剂的行。如果有可能有多个灰色洗涤剂记录,价格不同,这是必要的。