【发布时间】:2020-10-26 10:25:37
【问题描述】:
我有以下数据结构:
用户:
- 身份证
- 姓名
- status_id
帖子:
- 身份证
- 标题
- user_id
以下查询返回所有博客行
select * from Post where user_id in (select user_id from User where status_id = 7);
虽然子查询
select user_id from User where status_id = 7
是错误的,如果单独执行,它会返回错误“错误:列“user_id”不存在”。是什么导致了这种行为?
【问题讨论】:
-
今日提示:限定所有列!
-
你实际上在做
... in (select post.user_id from User...... -
当然它会给你错误,因为user_id不在用户表中,列名是id检查它。这可能对您有用 select * from Post where user_id in (select id from User where status_id = 7);
标签: sql postgresql subquery where-clause correlated-subquery