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

Вниз

Помогите составить 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
14-15893
Axel
2003-01-17 18:06
2003.02.06
. NET books


3-15437
Наташа
2003-01-22 13:14
2003.02.06
Транзакции


14-15875
BigBadMutuh
2003-01-16 08:28
2003.02.06
Оцифровка Аудио CD под WinXP


14-15898
Kotka
2003-01-20 14:16
2003.02.06
Стоит посмотреть!


14-15865
Maksss
2003-01-19 16:48
2003.02.06
У кого нидь есть ссылки на исходняки ботов для аськи





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский