2016-02-23 3 views
1

Вот что я вхожу, мне пришлось заменить EXCEPT на «NOT IN». Итак, чтобы решить одну ошибку, но теперь она возвращает более 1 строки. Я не совсем уверен, как это плохо. Я только начинаю разбираться в MySQL и пытаюсь привести примеры из книги.MySQL более 1 строки ошибка

SELECT S.sname 
FROM suppliers S 
WHERE (
    (SELECT P.pid FROM parts P) NOT IN 
    (SELECT C.pid FROM catalog C WHERE C.sid = S.sid) 
); 

ERROR 1242 (21000): Subquery returns more than 1 row 
+0

Благодаря @IkeWalker для редактирования. – user3038573

ответ

0
SELECT S.sname 
FROM suppliers S 
WHERE NOT EXISTS(
SELECT P.pid FROM parts P, catalog C 
WHERE P.pid = C.pid AND C.sid = S.sid) 
); 
+0

Возвращает пустой набор. Также не выбирает C.pid из каталога C – user3038573

+0

, чего вы хотите достичь? Pid s в частях, но не в Каталоге? Как это связано (или оно) с поставщиками в желаемом результате? –

+0

есть идентификатор детали, идентификатор поставщика и идентификатор каталога. Попытка найти имена поставщиков, которые поставляют каждую деталь (нашла ее в каталоге) – user3038573

Смежные вопросы