Форум: "Базы";
Текущий архив: 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