myschema中的两个表:发布和评论。评论< s onId指的是帖子是。在以下两段postgres代码中,为什么第一段代码中有select null
?有什么区别?
DELETE FROM myschema.comment comment
WHERE NOT EXISTS (
SELECT NULL
FROM myschema.post post
WHERE post.id = comment."onId"
);
DELETE FROM myschema.comment comment
WHERE NOT EXISTS (
SELECT *
FROM myschema.post post
WHERE post.id = comment."onId"
);
有人能举一些例子来说明差异吗?感谢
(postgres与mysql不一样。所以我的问题没有重复。我无法用mysql
标记我的问题,而且我总是不会搜索用mysql
标记的问题。这就是为什么我将postgres
放在我的帖子标题中。)
答案 0 :(得分:0)
Postgres非常聪明,可以忽略exists
子查询的select语句,因此无论选择null
,1
还是{{1},它都没有任何区别}。
见Subquery using Exists 1 or Exists *。这个问题与sql-server有关,但同样适用于postgres