postgres:为什么在子查询中选择null`?

时间:2017-10-02 15:02:56

标签: postgresql

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放在我的帖子标题中。)

1 个答案:

答案 0 :(得分:0)

Postgres非常聪明,可以忽略exists子查询的select语句,因此无论选择null1还是{{1},它都没有任何区别}。

Subquery using Exists 1 or Exists *。这个问题与sql-server有关,但同样适用于postgres