奇怪的postgresql行为

奇怪的postgresql行为,postgresql,Postgresql,有人能解释一下为什么会这样吗 => select client_id from clients_to_delete; ERROR: column "client_id" does not exist at character 8 但是,当将其放入IN()中时 它起作用了!并选择orders表中的所有行。运行删除/更新时也是如此。 为什么它不会像以前那样产生错误 谢谢大家! 在这个查询中 SELECT * FROM orders WHERE client_id IN

有人能解释一下为什么会这样吗

=> select client_id from clients_to_delete;
ERROR:  column "client_id" does not exist at character 8
但是,当将其放入IN()中时

它起作用了!并选择orders表中的所有行。运行删除/更新时也是如此。 为什么它不会像以前那样产生错误

谢谢大家!

在这个查询中

SELECT  *
FROM    orders
WHERE   client_id IN
        (
        SELECT  client_id
        FROM    clients_to_delete
        )
client\u id
取自外部表(
orders
),因为内部表(
clients\u to\u delete
)中没有具有此名称的字段:

在这个查询中

SELECT  *
FROM    orders
WHERE   client_id IN
        (
        SELECT  client_id
        FROM    clients_to_delete
        )
client\u id
取自外部表(
orders
),因为内部表(
clients\u to\u delete
)中没有具有此名称的字段:

SELECT  *
FROM    orders
WHERE   orders.client_id IN 
        (
        SELECT  orders.client_id
        FROM    clients_to_delete
        )