我试图做一个相关的子查询,但没有得到正确的答案。我尝试了查询' SUV‘的车辆和在这辆suv车辆我想要的车辆由宝马,但我得到所有的车辆,是SUV。我该怎么办?
-- 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');发布于 2022-09-19 17:03:15
所问的问题没有什么意义,因为底部的代码可以写得更简单.不需要子查询:
SELECT *
FROM Cars
WHERE vehicle_type = 'SUV' AND Automaker = 'BMW';为了让它更有趣,让我们假设你想要所有类型的汽车都是宝马制造的。在这种情况下,我们看到宝马生产SUV和轿车,所以我们想得到所有这些,但我们希望‘宝马’作为唯一的输入查询。
我选择了这一点,因为它更接近于原始查询。我认为,如果您看到这段代码实际上在做什么,它将帮助您了解。然而,我们确实需要两个调整:
SELECT *
FROM Cars
WHERE vehicle_type IN (SELECT DISTINCT vehicle_type from Cars WHERE Automaker = 'BMW');唯一的更改是将=替换为IN并向子查询中添加DISTINCT。
发布于 2022-09-19 17:03:41
您可以编写如下内容:
SELECT * FROM Cars WHERE vehicle_type = 'SUV' and Automaker='BMW';这选择了所有的细节的汽车类型=‘suv’和车辆由宝马。
https://stackoverflow.com/questions/73776678
复制相似问题