Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL子选择返回2列-应为1列_Sql_Sqlite - Fatal编程技术网

SQL子选择返回2列-应为1列

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 ( ...&

显示错误消息

子选择返回2列-应为1列

所以我知道为什么会发生这种情况,我的子LCT有第三方ID和效率等级,而我只从Studio中选择第三方ID

我的亲戚:斯图伊多雇佣员工 所以现在我想选择所有没有雇佣效率低于0.7的员工的工作室

所以我的问题是,我如何根据效率等级选择我的员工,并将我的工作室还给他们?

你只需要做:

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