Cof*_*fee 4 sql oracle oracle11g ora-00913
我得到了"太多的值"错误,我不知道如何处理它.问题从第一个嵌套的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))
Run Code Online (Sandbox Code Playgroud)
我查找了有关此错误的信息,我相信这是因为WHERE中的子查询返回了太多列.表格数据如下.但是我该如何减少呢?我感谢任何指点,谢谢
required_skills
POS_CODE VARCHAR2(10 BYTE) Yes 1
KS_CODE VARCHAR2(10 BYTE) Yes 2
Run Code Online (Sandbox Code Playgroud)
learning_unit_skills
LU_CODE VARCHAR2(10 BYTE) Yes 1
KS_CODE VARCHAR2(10 BYTE) Yes 2
Run Code Online (Sandbox Code Playgroud)
人
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
Run Code Online (Sandbox Code Playgroud)
课程学习单位
C_CODE VARCHAR2(10 BYTE) Yes 1
LU_CODE VARCHAR2(10 BYTE) Yes
Run Code Online (Sandbox Code Playgroud)
课程
C_CODE VARCHAR2(10 BYTE) Yes 1
PER_ID NUMBER(38,0) Yes 2
Run Code Online (Sandbox Code Playgroud)
快速重写:
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))
)
Run Code Online (Sandbox Code Playgroud)
或(连接可能需要更正):
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'
)
Run Code Online (Sandbox Code Playgroud)
问题是你的代码与表没有任何关系person.我想你应该在子查询中有一个 - 使它们相关.
| 归档时间: |
|
| 查看次数: |
42254 次 |
| 最近记录: |