Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Подзапрос не клеется в MySQL

285
11 февраля 2003 года
Romik
479 / / 24.11.2002
Возможно вопрос глуповат, одноко факт остаётся фактом, по крайне мере для меня.

Есть две таблицы, Department, которая содержит поле IndexNum CHAR(6), и hierarchy - l0 CHAR(6).
Другие поля в этих таблицах в моём запросе не фигурируют, а потому о них не стоит больше говорить.
И есть запрос:

select IndexNum from Department where IndexNum in ( select l0 from hierarchy where IndexNum=l0)

На что он мне выдаёт:

You have an error in your SQL syntax near 'select l0 from hierarchy where IndexNum=l0)' at line 1

Вооще-то мне нужно выбрать все элементы из Department (IndexNum), индексы которых не входят в таблицу hierarchy (l0 - это L маленькая и нуль), т.е. поля Department.IndexNum<>hierarchy.l0.
Но если просто написать
Select Department.IndexNum from Department, hierarchy where Department.IndexNum<>hierarchy.l0, то он просто выдаст все строки из Department. По моему, это происходит из-за того, что взяв элемент из Department, MySQL влюбом случае найдёт где-нибудь несоответсвие, а значит выдаст любую строку, а мне нужно обратное.

Я пробовал такое:

select IndexNum from Department where IndexNum not in ( select l0 from hierarchy where IndexNum=l0);

на что он выдал:
You have an error in your SQL syntax near 'select l0 from hierarchy where IndexNum=l0)' at line 1

и такое:

select IndexNum from Department where IndexNum not in exists ( select l0 from hierarchy, Department where Department.IndexNum=hierarchy.l0)

... он выдал:

You have an error in your SQL syntax near 'exists ( select l0 from hierarchy, Department where Department.IndexNum=hierarch' at line 1

Запрос

select l0 from hierarchy, Department where Department.IndexNum=hierarchy.l0

работате - выводит все строки из hierarchy

У меня MySQL Server: 3.23.39
MySQL-Front 2.5 Client: 3.23.52, хотя под PHP выдаёт тоже что и под MySQL-Front

Если кто что понял, и возможно знает в чём проблем , готов к критике...
4
12 февраля 2003 года
mike
3.7K / / 01.10.2002
Насколько мне известно, в этой версии MySql, как и в других, вложенные SELECT'ы не поддерживаются.
285
12 февраля 2003 года
Romik
479 / / 24.11.2002
Цитата:
Originally posted by mike
Насколько мне известно, в этой версии MySql, как и в других, вложенные SELECT'ы не поддерживаются.



Хорошо, предположим подзапросы не поддерживаются, но как быть тогда, как выбрать все эл. из одной таблицы, которые не прописаны в другой?

Thanks...

300
12 февраля 2003 года
ReDrum
689 / / 20.04.2000
Цитата:
Originally posted by Romik


Хорошо, предположим подзапросы не поддерживаются, но как быть тогда, как выбрать все эл. из одной таблицы, которые не прописаны в другой?

Thanks...



использовать
LEFT JOIN

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог