Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Как выбрать НЕ совпадающие строки из двух таблиц.  [new]
Yras
Member

Откуда: Краснодар
Сообщений: 36
Добрый день. Как это описать оператором SELECT-SQL ?
Или только через SCAN?
6 окт 04, 11:14    [1011734]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать НЕ совпадающие строки из двух таблиц.  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7833
SELECT * FROM tab1 ;
WHERE NOT EXISTS(SELECT * FROM Tab2 ;
	WHERE tab2.Field1=Tab1.Field1 AND tab2.Field2=tab1.Field2 AND ...)
6 окт 04, 11:17    [1011756]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать НЕ совпадающие строки из двух таблиц.  [new]
Yras
Member

Откуда: Краснодар
Сообщений: 36
Спасибо. Все получилось. Буду использовать в дальнейшей работе.
Какой источник посоветуете, где можно подчерпнуть знания о подзапросах.
6 окт 04, 11:42    [1011894]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать НЕ совпадающие строки из двух таблиц.  [new]
Станислав C.
Member

Откуда: Екатеринбург
Сообщений: 1030
ВладимирМ
SELECT * FROM tab1 ;
WHERE NOT EXISTS(SELECT * FROM Tab2 ;
	WHERE tab2.Field1=Tab1.Field1 AND tab2.Field2=tab1.Field2 AND ...)


Это не совсем полно, так как идет отбор только несовпадающих строк из таблицы 1. Для получения более корректного результата необходимо сделать то же самое для таблицы 2 и объединить выборки через UNION:
SELECT * FROM tab1 ;
WHERE NOT EXISTS(SELECT * FROM Tab2 ;
	WHERE tab2.Field1=Tab1.Field1 AND tab2.Field2=tab1.Field2 AND ...);
UNION ALL;
SELECT * FROM tab2 ;
WHERE NOT EXISTS(SELECT * FROM Tab1 ;
	WHERE tab2.Field1=Tab1.Field1 AND tab2.Field2=tab1.Field2 AND ...)
6 окт 04, 12:50    [1012283]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать НЕ совпадающие строки из двух таблиц.  [new]
Станислав C.
Member

Откуда: Екатеринбург
Сообщений: 1030
Yras
Какой источник посоветуете, где можно подчерпнуть знания о подзапросах.


Стандартный Help, топики по командам SQL
6 окт 04, 12:56    [1012316]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать НЕ совпадающие строки из двух таблиц.  [new]
MaestroEv
Member

Откуда: г.Благовещенск
Сообщений: 269
SELECT * FROM tab1 union SELECT * FROM Tab2 тоже выберет уникальные строки двух таблиц....
7 окт 04, 05:50    [1014527]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать НЕ совпадающие строки из двух таблиц.  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2669
маэстро вы неправы
этот запрос выберет несовпадающие строки из обеих таблиц плюс совпадающие в единичном варианте
а вопрос ставился иначе
7 окт 04, 09:18    [1014757]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как выбрать НЕ совпадающие строки из двух таблиц.  [new]
eugenpol
Member

Откуда:
Сообщений: 2
WHERE NOT EXISTS(SELECT * FROM Tab2 ; в этой строке MySQL Мне выдает ошибку - Статический анализ:

Найдено 1 ошибок при анализе.

Unrecognized statement type. (near "WHERE" at position 0)
Подскажите что не так?
16 окт 18, 18:50    [21705759]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать НЕ совпадающие строки из двух таблиц.  [new]
eugenpol
Member

Откуда:
Сообщений: 2
Разобрался
16 окт 18, 19:28    [21705786]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить