Py学习  »  DATABASE

子查询脚本sql/mysql

Ed_ • 5 年前 • 1599 次点击  

嗨,我正在做一个学术作业,我收到错误代码1111无效使用组函数。有人能解释/告诉我如何修正这个错误吗?

任务:使用子查询显示每个拥有至少一种非爬行动物的客户机的客户机ID和姓氏。

SELECT vt_clients.cl_id , vt_clients.cl_name_last 
FROM vt_clients 
WHERE vt_clients.cl_id NOT IN(SELECT an.cl_id 
FROM vt_animals an WHERE an_type IN('snake', 'lizard', 'turtle') AND COUNT(an_type) > 1);

table chart

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43090
 
1599 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Gordon Linoff
Reply   •   1 楼
Gordon Linoff    6 年前

我只想用 exists :

SELECT c.cl_id , c.cl_name_last 
FROM vt_clients c 
WHERE EXISTS (SELECT 1
              FROM vt_animals a
              WHERE c.cl_id = c.cl_id AND
                    a.an_type NOT IN ('snake', 'lizard', 'turtle')
            );

你只需要一种非爬行动物的存在,所以没有必要 count() .

Fahmi
Reply   •   2 楼
Fahmi    6 年前

你可以在下面试试

SELECT vt_clients.cl_id , vt_clients.cl_name_last 
FROM vt_clients 
WHERE not exists
(SELECT 1  
FROM vt_animals an WHERE an.cl_id=vt_clients.cl_id and an_type IN('snake', 'lizard', 'turtle') 
having COUNT(an_type) >= 1
)