我有一个名为CustomerTable
的表:
客户表
我想找到同时提供House
和Apartment
服务的客户。理想情况下,我应该让Peter和Amanda返回我的结果。
我正在尝试以下查询,但它返回的是拥有房屋或公寓的所有客户。请帮助
select *
from CustomerTable
where SERVICE in ('House', 'Apartment')
答案 0 :(得分:1)
您可以使用having
子句:
select customer_name
from CustomerTable
where SERVICE in ('House', 'Apartment')
group by customer_name
having min(service) <> max(service);
答案 1 :(得分:1)
您可以像这样使用HAVING子句:
SELECT CUSTOMER_NAME
FROM CustomerTable
WHERE SERVICE IN ('House', 'Apartment')
GROUP BY CUSTOMERNAME
HAVING COUNT(DISTINCT SERVICE) = 2
答案 2 :(得分:0)
你在这里
CREATE TABLE CustomerTable(
CustomerName VARCHAR(45),
Service VARCHAR(45)
);
INSERT INTO CustomerTable VALUES
('Mark', 'House'),
('Mark', 'Condo'),
('Ashley', 'Condo'),
('John', 'House'),
('John', 'Condo'),
('David', 'House'),
('Peter', 'House'),
('Peter', 'Apartment'),
('Peter', 'Condo'),
('Amanda', 'House'),
('Amanda', 'Apartment');
SELECT CustomerName
FROM CustomerTable
WHERE Service IN ('House', 'Apartment')
GROUP BY CustomerName
HAVING MAX(Service) != MIN(Service);
返回:
+----+--------------+
| | CustomerName |
+----+--------------+
| 1 | Amanda |
| 2 | Peter |
+----+--------------+