Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];

Вниз

Нужен SQL запрос   Найти похожие ветки 

 
ak75   (2003-01-04 13:05) [0]

Не могу построить запрос, помогите.
Есть таблицы Tbl1 и Tbl2 с полями Id и Name.
Условия такие:
1. все записи из Tbl1 если Tbl1.Id <> Tbl2.Id
2. все записи из Tbl2 если Tbl1.Id <> Tbl2.Id
3. Одинаковые Id в двух таблицах, но без повторов.


 
Johnmen   (2003-01-04 13:20) [1]

1.
SELECT * FROM Tbl1
LEFT JOIN Tbl2 ON Tbl1.Id = Tbl2.Id
WHERE Tbl2.Id IS NULL


 
Max Zyuzin   (2003-01-04 13:24) [2]

1.
select * from tbl1
where tbl1.id not in (select tbl2.id from tbl2)
2. поменять местами tbl
3.
select distinct tbl1.* from tbl1, tbl2
where Tbl1.Id = Tbl2.Id


 
Delirium^.Tremens   (2003-01-04 13:25) [3]

Johnmen © (04.01.03 13:20)
1. все записи из Tbl1 если Tbl1.Id <> Tbl2.Id


 
Johnmen   (2003-01-04 13:39) [4]

>Delirium^.Tremens © (04.01.03 13:25)

Не понял...Это к чему ?


 
Delirium^.Tremens   (2003-01-04 13:55) [5]

Johnmen © (04.01.03 13:39)
> Не понял...Это к чему ?

К тому, что по условию запрос должен вернуть те записи, где они(ID) не равны


 
Johnmen   (2003-01-04 13:58) [6]

>Delirium^.Tremens © (04.01.03 13:55)

Так и будет :)))))))))))))))


 
Delirium^.Tremens   (2003-01-04 14:02) [7]

Johnmen © (04.01.03 13:58)
> Так и будет :)))))))))))))))

Если так и будет на LocalSQL, то я в жизни за него не возьмусь. По моему разумению, в нормальной базе, твой запрос вернет пустышку :-)


 
Johnmen   (2003-01-04 14:10) [8]

>Delirium^.Tremens © (04.01.03 14:02)

Просто предлагаю тебе попробовать :) на LocalSQL.
Запрос верен на 100%, не зависимо от БД...:)


 
Delirium^.Tremens   (2003-01-04 14:23) [9]

Johnmen © (04.01.03 14:10)
> Просто предлагаю тебе попробовать :) на LocalSQL.
> Запрос верен на 100%, не зависимо от БД...:)

Бред какой-то, но так и есть. Более того, если взять NOT NULL, то вернет пересекающиеся ID


 
Delirium^.Tremens   (2003-01-04 14:24) [10]


> Более того, если взять NOT NULL, то вернет пересекающиеся
> ID

P.S. Хотя это-то как раз и понятно


 
Johnmen   (2003-01-04 14:34) [11]

>Delirium^.Tremens © (04.01.03 14:23)
>Бред какой-то...

Никакого бреда !
Если понимать смысл левого соединения...:)


 
passm   (2003-01-04 14:55) [12]

Результат видется как все ID (FROM TBL1 & TBL2), но без повторов. Иными словами - объединение множеств.
SELECT TBL1.ID
FROM TBL1
UNION ALL
SELECT TBL2.ID
FROM TBL2
WHERE TBL2.ID NOT IN (SELECT TBL1.ID FROM TBL1)


 
Johnmen   (2003-01-04 15:00) [13]

>passm © (04.01.03 14:55)

Тогда уж :
SELECT TBL1.ID
FROM TBL1
UNION
SELECT TBL2.ID
FROM TBL2


 
passm   (2003-01-04 15:07) [14]

Johnmen © (04.01.03 15:00)> Да, либо просто UNION.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.008 c
1-72287
Smok_er
2003-01-13 01:39
2003.01.23
Освобождение объектов


3-72108
sanilo
2002-12-28 21:20
2003.01.23
Доступ к Базе Данных


1-72246
TTCustomDelphiMaster
2003-01-13 20:14
2003.01.23
Excel NumberFormat


3-72140
Andreika
2002-12-31 18:16
2003.01.23
Потеря данных


6-72455
Keplin Sergey
2002-11-24 16:36
2003.01.23
Два вопроса...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский