相关疑难解决方法(0)

选择其他表中不存在的行

我有两个postgresql表:

table name     column names
-----------    ------------------------
login_log      ip | etc.
ip_location    ip | location | hostname | etc.
Run Code Online (Sandbox Code Playgroud)

我想得到每个login_log没有行的IP地址ip_location.
我尝试了这个查询,但它抛出了语法错误.

SELECT login_log.ip 
FROM login_log 
WHERE NOT EXIST (SELECT ip_location.ip
                 FROM ip_location
                 WHERE login_log.ip = ip_location.ip)
Run Code Online (Sandbox Code Playgroud)
ERROR: syntax error at or near "SELECT"
LINE 3: WHERE NOT EXIST (SELECT ip_location.ip`
Run Code Online (Sandbox Code Playgroud)

我也想知道这个查询(通过调整使其工作)是否是用于此目的的最佳性能查询.

sql postgresql null exists left-join

150
推荐指数
2
解决办法
18万
查看次数

选择NOT IN多列

我需要实现以下查询

SELECT * 
FROM   friend 
WHERE  ( friend.id1, friend.id2 ) 
         NOT IN (SELECT id1, 
                        id2 
                 FROM   likes) 
Run Code Online (Sandbox Code Playgroud)

但NOT IN无法在多列上实现.我该如何编写此查询

sql database multiple-columns

61
推荐指数
4
解决办法
11万
查看次数

如何删除没有唯一标识符的重复行

我的表中有重复的行,我想以最有效的方式删除重复项,因为表很大.经过一番研究,我得出了这个问题:

WITH TempEmp AS
(
SELECT name, ROW_NUMBER() OVER(PARTITION by name, address, zipcode ORDER BY name) AS duplicateRecCount
FROM mytable
)
-- Now Delete Duplicate Records
DELETE FROM TempEmp
WHERE duplicateRecCount > 1;
Run Code Online (Sandbox Code Playgroud)

但它只适用于SQL,而不适用于Netezza.它似乎不喜欢DELETE后面的WITH条款?

sql database postgresql duplicates netezza

41
推荐指数
5
解决办法
5万
查看次数

在SQL中嵌套查询

我的查询的目标是返回国家名称及其国家元首,如果它的headofstate名称以A开头,并且该国家的首都使用嵌套查询的人数超过100,000人.

这是我的查询:

SELECT country.name as country, 
       (SELECT country.headofstate 
        from country 
        where country.headofstate like 'A%')      
from country, city 
where city.population > 100000;
Run Code Online (Sandbox Code Playgroud)

我试过反转它,把它放在where子句等.我没有得到嵌套查询.我只是得到错误,比如"子查询返回多行"等等.如果有人可以帮助我如何订购,并解释为什么它需要以某种方式,这将是伟大的.

sql nested

13
推荐指数
2
解决办法
11万
查看次数