Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на несовпадение / 12 сообщений из 12, страница 1 из 1
06.07.2004, 15:21:40
    #32591595
Vw
Vw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на несовпадение
Господа акцешники подскажите !
почему такая инструкция работает:

SELECT FROM Товары INNER JOIN Заказы ON Товары.Код = Заказы.Код
а такая нет:
SELECT FROM Товары INNER JOIN Заказы ON Товары.Код <> Заказы.Код

Какие есть решения?
з.ы. Кроме содание новой таблицы... удаления уже существующих...
...
Рейтинг: 0 / 0
06.07.2004, 15:22:34
    #32591600
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на несовпадение
Мастер есть для построения таких запросов.
...
Рейтинг: 0 / 0
06.07.2004, 15:26:28
    #32591609
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на несовпадение
SELECT * FROM Товары where Товары.Код not in (select * Заказы.Код from Заказы)
так, что ли?
Или, если я не понял вопроса, то мастер есть — записи без подчиненных
...
Рейтинг: 0 / 0
06.07.2004, 15:27:36
    #32591611
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на несовпадение
ИМХО
1. Оба запроса работать не будут (ибо между Select и From, что быть должно)
2. Мастер не умеет ставить <> при объединении таблиц
3. У меня всегда работало, после замены условия склейки - путем замены знака равенства на другую операцию сравнеия. Почему у вас не выходит, остается только гадать. (Может вы нам не весь запрос показали?)
4. Что значит не работает: Выдает ошибку синтаксиса? Не верный результат выдает?
...
Рейтинг: 0 / 0
06.07.2004, 15:27:47
    #32591615
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на несовпадение
Vw
SELECT FROM Товары INNER JOIN Заказы ON Товары.Код = Заказы.Код
а такая нет:
SELECT FROM Товары INNER JOIN Заказы ON Товары.Код <> Заказы.Код

Какие есть решения?

А что хочется получить на выходе второго запроса?
Товары, которые не попали в заказ?
тогда это неправильный запрос - в корне неправильный.
...
Рейтинг: 0 / 0
06.07.2004, 15:34:00
    #32591633
Vw
Vw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на несовпадение
Нужно сравнить две таблицы по полю "КОД"
и тех записей которых нет в одной (в данном случае "заказы") отобразить.
...
Рейтинг: 0 / 0
06.07.2004, 15:35:53
    #32591637
dalai lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на несовпадение
Код: plaintext
SELECT * FROM Товары, Заказы WHERE Товары.Код<> Заказы.Код

зачем люди городят такое:

Код: plaintext
SELECT * FROM Товары where Товары.Код not in (select Заказы.Код from Заказы)

это оптимизатор чтоли лучше кушает?
...
Рейтинг: 0 / 0
06.07.2004, 15:37:30
    #32591642
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на несовпадение
Надо просто другой тип JOIN-а использовать
примерно так:
Код: plaintext
1.
2.
SELECT t.*, o.Код FROM Товары t OUTER JOIN Заказы o ON t.Код=o.Код
WHERE o.Код is NULL
...
Рейтинг: 0 / 0
06.07.2004, 15:39:35
    #32591647
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на несовпадение
dalai lamer
Код: plaintext
SELECT * FROM Товары where Товары.Код not in (select Заказы.Код from Заказы)

это оптимизатор чтоли лучше кушает?

Поидее еще лучше будет кушать так:
Код: plaintext
1.
SELECT * FROM Товары 
where NOT exists (select Заказы.Код from Заказы WHERE Товары.Код = Заказы.Код)
...
Рейтинг: 0 / 0
06.07.2004, 15:40:56
    #32591654
dalai lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на несовпадение
Bely dalai lamer...

Да??? не знал... mysqlьное прошлое довлеет, не люблю вложенные запросы
...
Рейтинг: 0 / 0
06.07.2004, 15:40:58
    #32591655
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на несовпадение
авторSELECT * FROM Товары, Заказы WHERE Товары.Код<> Заказы.Код
Это от структуры INNER JOIN ни чем не отличается
Такая конструкция по сути не верна - ибо выдает не верный результат, а не ошибку синтаксиса - просто чел. не совсем доганяет что он попросил не то что хотел

1. Смотрим вариант с not in (он мне не нравиться - Акс таких шуток с большим объемом данных не понимает и начинает жутко тормозить - но вариант рабочий)
2. Либо сделать через Left Join
Код: plaintext
1.
2.
3.
Select Товары.*
From Товары Left Join Заказы
On Товары.Код = Заказы.Код
Where Заказы.Код Is Null
...
Рейтинг: 0 / 0
06.07.2004, 15:46:00
    #32591674
Vw
Vw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на несовпадение
Остановитесь мужики !!!
Я всё понял !
Действительно есть мастер.
Спасибо за урок !!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на несовпадение / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]