SQL子选择返回2列-应为1列
显示错误消息 子选择返回2列-应为1列 所以我知道为什么会发生这种情况,我的子LCT有第三方ID和效率等级,而我只从Studio中选择第三方ID 我的亲戚:斯图伊多雇佣员工 所以现在我想选择所有没有雇佣效率低于0.7的员工的工作室 所以我的问题是,我如何根据效率等级选择我的员工,并将我的工作室还给他们?你只需要做:SQL子选择返回2列-应为1列,sql,sqlite,Sql,Sqlite,显示错误消息 子选择返回2列-应为1列 所以我知道为什么会发生这种情况,我的子LCT有第三方ID和效率等级,而我只从Studio中选择第三方ID 我的亲戚:斯图伊多雇佣员工 所以现在我想选择所有没有雇佣效率低于0.7的员工的工作室 所以我的问题是,我如何根据效率等级选择我的员工,并将我的工作室还给他们?你只需要做: sqlite> SELECT * ...> FROM Studio ...> WHERE third_party_id NOT IN ( ...&
sqlite> SELECT *
...> FROM Studio
...> WHERE third_party_id NOT IN (
...> SELECT third_party_id,effeciency_rating
...> FROM Staff
...> WHERE Staff.third_party_id = Studio.third_party_id AND
...> Staff.effeciency_rating < 0.7
...> );
在任何情况下,我建议NOT EXISTS优于NOT In,因为它可以更合理地处理空值。更改:
SELECT st.*
FROM Studio st
WHERE NOT EXISTS (SELECT s.third_party_id
FROM Staff s
WHERE s.third_party_id = st.third_party_id AND s.effeciency_rating < 0.7
);
致:
您的内部查询定义了2列 第三方id、效率等级 从内部选择中删除“效率”列
删除效率评分,在非选择子查询中,您应始终指定要返回的列,而不是使用*这不是一个论坛,而是一个问答网站。请阅读,看看它是如何工作的。顺便说一句,我相信你拼错了效率:
SELECT st.*
FROM Studio st
WHERE NOT EXISTS (SELECT s.third_party_id
FROM Staff s
WHERE s.third_party_id = st.third_party_id AND s.effeciency_rating < 0.7
);
...> SELECT third_party_id,effeciency_rating
...> SELECT third_party_id