我有 2 个表格,即下面的客户和产品是否有定义
顾客
customer_id
.customer_name
.
产品
product_id
.product_name
.
客户表填充如下
customer_id |customer_name
----------------------------
1 | abc
----------------------------
2 | efg
------------------------------
产品表填充如下
product_id|product_name
------------------------------
1 | chair
-----------------------------
2 | desk
------------------------------
当我运行以下查询时
SELECT customer_id FROM customer WHERE customer_id IN (SELECT customer_id FROM product)
我的期望是它会在产品表中抱怨 no column customer_id 错误,而不是这个查询返回客户表的所有行。谁能解释这里发生了什么?为什么子选择使用父查询中的表并从中返回结果而不抱怨?