我有一個MySQL查詢,我認爲它會拋出一個異常,但它沒有。只是想弄清楚爲什麼?查詢是:帶子查詢的IN子句按預期工作
select count(distinct uid)
from nov_visit_20161201
where pv_listen>0
and uid in (select distinct uid from nov_visit_20161120 where pv_listen>0);
問題是表nov_visit_20161120沒有pv_listen列,但查詢行之有效。當我獨自運行子查詢:
select distinct uid from nov_visit_20161120 where pv_listen>0
我得到這個:「未知列‘where子句’pv_listen'」。
任何人都可以告訴我爲什麼?
您的外部查詢引用另一個表,內部引用另一個表,內部引用的表沒有該列。這就是爲什麼一個人工作,一個人不工作 –
如果該表沒有列出您引用的列,並且您知道該列,那麼問題是什麼? –
@Hanky Panky,我認爲應該有一個錯誤,但不是,我想知道爲什麼。@ Sumit Gupta的回答是正確的。 – madtracy