Подзапрос не клеется в MySQL
Есть две таблицы, 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
Если кто что понял, и возможно знает в чём проблем , готов к критике...
Насколько мне известно, в этой версии MySql, как и в других, вложенные SELECT'ы не поддерживаются.
Цитата:
Originally posted by mike
Насколько мне известно, в этой версии MySql, как и в других, вложенные SELECT'ы не поддерживаются.
Насколько мне известно, в этой версии MySql, как и в других, вложенные SELECT'ы не поддерживаются.
Хорошо, предположим подзапросы не поддерживаются, но как быть тогда, как выбрать все эл. из одной таблицы, которые не прописаны в другой?
Thanks...
Цитата:
Originally posted by Romik
Хорошо, предположим подзапросы не поддерживаются, но как быть тогда, как выбрать все эл. из одной таблицы, которые не прописаны в другой?
Thanks...
Хорошо, предположим подзапросы не поддерживаются, но как быть тогда, как выбрать все эл. из одной таблицы, которые не прописаны в другой?
Thanks...
использовать
LEFT JOIN