首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SUbquery相关

SUbquery相关
EN

Stack Overflow用户
提问于 2022-09-19 16:40:12
回答 2查看 23关注 0票数 0

我试图做一个相关的子查询,但没有得到正确的答案。我尝试了查询' SUV‘的车辆和在这辆suv车辆我想要的车辆由宝马,但我得到所有的车辆,是SUV。我该怎么办?

代码语言:javascript
复制
-- create a table
CREATE TABLE Cars (
  id INTEGER PRIMARY KEY,
  CarName varchar(50),
  vehicle_type varchar(50),
  Automaker varchar(50),
  Price INTEGER 
  
);
-- insert some values
INSERT INTO Cars VALUES 
(1, 'BMW X6',  'SUV','BMW', 108200),
(2, 'BMW X6',  'SUV','BMW',88200),
(3,'Grand Cherokee','SUV','JEEP' ,21678),
(4,'Grand Cherokee','SUV','JEEP' , 24518),
(5,'Grand Cherokee','SUV','JEEP' , 27548),
(6,'BMW 320','Sedan','BMW' , 54518),
(7,'AUDI A8','Sedan','AUDI' , 64518);

SELECT * FROM Cars WHERE vehicle_type =  (SELECT vehicle_type from Cars WHERE Automaker = 'BMW');
EN

回答 2

Stack Overflow用户

发布于 2022-09-19 17:03:15

所问的问题没有什么意义,因为底部的代码可以写得更简单.不需要子查询:

代码语言:javascript
复制
SELECT * 
FROM Cars 
WHERE vehicle_type = 'SUV' AND Automaker = 'BMW';

为了让它更有趣,让我们假设你想要所有类型的汽车都是宝马制造的。在这种情况下,我们看到宝马生产SUV和轿车,所以我们想得到所有这些,但我们希望‘宝马’作为唯一的输入查询。

我选择了这一点,因为它更接近于原始查询。我认为,如果您看到这段代码实际上在做什么,它将帮助您了解。然而,我们确实需要两个调整:

代码语言:javascript
复制
SELECT * 
FROM Cars 
WHERE vehicle_type IN  (SELECT DISTINCT vehicle_type from Cars WHERE Automaker = 'BMW');

唯一的更改是将=替换为IN并向子查询中添加DISTINCT

票数 0
EN

Stack Overflow用户

发布于 2022-09-19 17:03:41

您可以编写如下内容:

代码语言:javascript
复制
SELECT * FROM Cars WHERE vehicle_type = 'SUV' and Automaker='BMW';

这选择了所有的细节的汽车类型=‘suv’和车辆由宝马。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73776678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档