“ORA-00913: trop de valeurs” erreur lorsque j'exécute la requête SQL

Que je suis un "trop grand nombre de valeurs" d'erreur et je ne suis pas sûr de la façon de l'aborder. Le problème commence à la première imbriquée SÉLECTIONNEZ

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))

J'ai regardé info sur cette erreur et je crois que c'est parce que la sous-requête dans la là OÙ les rendements trop de colonnes. Les données du tableau ci-dessous. Mais comment puis-je whittle que vers le bas? J'apprécie tous les pointeurs, Grâce

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

personne

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   

cours des unités d'apprentissage

C_CODE  VARCHAR2(10 BYTE)   Yes     1   
LU_CODE VARCHAR2(10 BYTE)   Yes     

cours

C_CODE  VARCHAR2(10 BYTE)   Yes     1   
PER_ID  NUMBER(38,0)    Yes     2   
dans votre requête, après la première condition où il n'y a pas de champ ou de la colonne est mentionné
Comment sont vos autres tables liées à person?
Merci - oui, c'est par un courses_taken table
La sous-requête (précédant l'opérateur) ne retourne pas de "trop de colonnes", mais il renvoie trop de lignes.

OriginalL'auteur Coffee | 2011-12-02