我收到了“太多的值”错误,我不确定如何处理它。问题从第一个嵌套的SELECT
开始SELECT p.name, p.phone_number
FROM person p WHERE
(SELECT ks.title, ks.ks_code
FROM required_skills rs JOIN knowledge_skills ks USING (ks_code)
WHERE rs.pos_code = 'CS1')
IN (SELECT ks.title, ks.ks_code
FROM courses_taken ct JOIN course_learning_units clu
USING (c_code) JOIN learning_unit_skills lus USING (lu_code)
JOIN knowledge_skills ks USING (ks_code))
我查了info about this error,我相信这是因为WHERE中的子查询返回了太多列。表格数据如下。但是我该如何减少呢?我感谢任何指示,谢谢
required_skills
POS_CODE VARCHAR2(10 BYTE) Yes 1
KS_CODE VARCHAR2(10 BYTE) Yes 2
learning_unit_skills
LU_CODE VARCHAR2(10 BYTE) Yes 1
KS_CODE VARCHAR2(10 BYTE) Yes 2
人
PER_ID NUMBER(38,0) No 1
NAME VARCHAR2(255 BYTE) Yes 2
STREET VARCHAR2(255 BYTE) Yes 3
CITY VARCHAR2(60 BYTE) Yes 4
ZIP_CODE VARCHAR2(60 BYTE) Yes 5
PHONE_NUMBER VARCHAR2(255 BYTE) Yes 6
GENDER VARCHAR2(6 BYTE) Yes 7
课程学习单元
C_CODE VARCHAR2(10 BYTE) Yes 1
LU_CODE VARCHAR2(10 BYTE) Yes
课程
C_CODE VARCHAR2(10 BYTE) Yes 1
PER_ID NUMBER(38,0) Yes 2
答案 0 :(得分:6)
快速重写:
SELECT p.name, p.phone_number
FROM person p WHERE EXISTS
(SELECT *
FROM required_skills rs JOIN knowledge_skills ks USING (ks_code)
WHERE rs.pos_code = 'CS1'
AND (ks.title, ks.ks_code)
IN (SELECT ks.title, ks.ks_code
FROM courses_taken ct JOIN course_learning_units clu
USING (c_code) JOIN learning_unit_skills lus USING (lu_code)
JOIN knowledge_skills ks USING (ks_code))
)
或(联接可能需要更正):
SELECT p.name, p.phone_number
FROM person p WHERE EXISTS
(SELECT *
FROM required_skills rs JOIN knowledge_skills ks USING (ks_code)
JOIN ( courses_taken ct JOIN course_learning_units clu
USING (c_code) JOIN learning_unit_skills lus USING (lu_code)
) USING (ks_code)
WHERE rs.pos_code = 'CS1'
)
问题在于您的代码与表person
无关。我猜你应该在子查询中有一个 - 使它们相关。
答案 1 :(得分:1)
使用"存在"在"在"的地方可以帮到你
答案 2 :(得分:0)
CREATE TABLE EMP(EMPNO NUMBER(4) NOT NULL,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7, 2),
COMM NUMBER(7, 2),
DEPTNO NUMBER(2));
INSERT INTO EMP VALUES
(7369, 'SMITH', 'CLERK', 7902,
TO_DATE('17-DEC-1980', 'DD-MON-YYYY'), 800, NULL, 20);
插入值时,它会给许多值带来错误
当我插入它时,我有一个这个表的表脚本,它在我的桌面上提供了很多错误它可以正常工作