Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

Помогите составить SQL запрос   Найти похожие ветки 

 
tanuha   (2003-01-17 16:05) [0]

1)необходимо соединить две таблицы по полю ШПЗ,
причем наличие соответсвующих записей в
каждой из таблиц необязательно.
2)вывести строки из таблицы А, в которых есть
код ID, которого нет в таблице В


 
ЮЮ ©   (2003-01-18 03:27) [1]

1) если отношение M:N, то в одном запросе невозможно
2)
a) select * from B where not B.aID in (select ID from A)
b) select * from B
left join A on B.aID = A.ID where A.ID IS NULL


 
Suntechnic ©   (2003-01-18 10:03) [2]

ЮЮ © (18.01.03 03:27)
А что full outer join уже отменили?
1) select * from B
full join A on B.aID = A.ID


 
ЮЮ ©   (2003-01-20 04:19) [3]

>Suntechnic © (18.01.03 10:03)
>А что full outer join уже отменили?

Нет, но он , как и LEFT JOIN и RIGHT JOIN, предназначен для связей 1..N

full join A on B.aID = A.ID каждую запись из A свяжет с каждой записью из B.


 
Suntechnic ©   (2003-01-20 07:02) [4]

>ЮЮ © (20.01.03 04:19)
Нет, но он , как и LEFT JOIN и RIGHT JOIN, предназначен для связей 1..N

Да мне не надо объяснять для чего он предназначен.

full join A on B.aID = A.ID каждую запись из A свяжет с каждой записью из B.

Да, но помимо этого он выведет в запросе те записи из A, которые не нашли соответствие в В, и те записи из В, которые не нашли соответствие в А, что, как я понимаю, и необходимо вопрошающему.


 
ЮЮ ©   (2003-01-20 08:46) [5]

Что надо вопрошающей не совсем ясно, но full join A on B.aID = A.ID как точно замечено помимо помимо нужной информации выведет кучу дублирующих записей


 
Suntechnic ©   (2003-01-20 09:06) [6]

>ЮЮ © (20.01.03 08:46)
Спорить о том, что надо вопрошающему мы конечно не будем. И " нужную информацию" давайте тоже остваим в покое посколько совсем неясно какая информация "нужная"...
Непонятно другое... о каких "дублирующихся" записях вы ведёте речь?


 
ЮЮ ©   (2003-01-20 09:13) [7]

Если в A есть одна запись с ID=1, а в B - две, то запрос вернёт две записи:
<поля записи 1 из A> <поля записи 1 из В>
<поля записи 1 из A> <поля записи 2 из В>,
т.е. такой запрос не в гриде не покажешь, ни SUM правильно не посчитаешь


 
Suntechnic ©   (2003-01-20 09:34) [8]

>ЮЮ © (20.01.03 09:13)
Интересный вы человек. А что по вашему в этом случае вернёт inner join(при условии конечно, что записи в таблице B соответствуют ID=1)? Теж же две записи вы и получите. Так о каких "дублирующих" вы ведёте речь? Те записи которые соответствуют друг другу они никуда из любого(left, right, full) outer join не деваются и если для них нашлось соответствие, то только соответствие и выводится и ничего потом не дублируются. Разница лишь в том, что к ним ещё добавляются записи, которые не нашли соотв.



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

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
14-15924
Безногий Сусанин
2003-01-21 12:21
2003.02.06
Принимаю рационализаторские планы по уничтожению Пентагона...


4-15981
Алексей Ким
2002-12-23 11:12
2003.02.06
MessageBoxIndirectW


6-15786
Georg
2002-12-13 14:42
2003.02.06
CGI-приложения


14-15852
Ihor Osov'yak
2003-01-17 21:08
2003.02.06
Структура NTFS


6-15777
Br@iN
2002-12-08 21:23
2003.02.06
Как скачать файл с сайта?