【发布时间】:2019-04-10 02:59:24
【问题描述】:
使用 PostgreSQL 9.6.12。
假设一个作者有很多博客文章。
当我运行以下查询时,我会为每个相关帖子获得一行。
SELECT authors.id
FROM authors
LEFT JOIN posts ON authors.id = posts.author_id
当我运行以下命令时,我只会为每个作者获得一行:
SELECT authors.*
FROM authors
LEFT JOIN posts ON authors.id = posts.author_id
但是,当我对其中任何一个进行计数时,我会得到更高的行数。例如。所有帖子的计数。
为什么我使用通配符选择所有列时没有得到更高的行数结果?
【问题讨论】:
-
通配符只是为了不写所有可选择的字段,它并不意味着任何其他。两个查询都返回相同的行
-
这些查询都不返回两个表的笛卡尔积。
-
两次查询返回的行数相同..
-
那些不是笛卡尔积。
-
天哪,既然您已经修改了问题,我就花时间回复了。
标签: sql postgresql