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

Вниз

Вернуть "First" с условием   Найти похожие ветки 

 
ivanoff   (2008-10-01 15:26) [0]

SELECT
 First(T1.f1),
 First(T3.DataFld)      <------ ...

FROM T1
 LEFT JOIN T2 ON T1.id2 = T2.id
 LEFT JOIN T3 ON T1.id3 = T3.id

GROUP BY T1.id1


.... вот там нужно получить не первую запись а первую при условии T2.MyField = T3.MyField если таковых нету чтоб вернуло NULL


 
Поросенок Винни-Пух ©   (2008-10-01 15:34) [1]

надо использовать закрытое объединение, а не открытое


 
ivanoff   (2008-10-01 15:46) [2]

это как?

INNER JOIN

не подходит  Access не принимает


 
Поросенок Винни-Пух ©   (2008-10-01 15:47) [3]

select ... from table 1, table 2
where table1.x = table2.y


 
ivanoff   (2008-10-01 15:51) [4]


> если таковых нету чтоб вернуло NULL


???


 
Поросенок Винни-Пух ©   (2008-10-01 16:01) [5]

если таковых не будет, выборка будет пустая


 
Сергей М. ©   (2008-10-01 16:02) [6]


> ivanoff   (01.10.08 15:51) [4]


И зачем тебе этот нул понадобился ?
Без него жизнь что ли не мила или что ?
Поясни ..


 
ivanoff   (2008-10-01 16:09) [7]

эту самую выборку потом нужно обработать если там есть что-то - использую это ели нет (=NULL) знаю что надобно добавить запись в T3 с нуйным условием

...хочу знать стандартными средствами реализуемо или нет


 
Поросенок Винни-Пух ©   (2008-10-01 16:16) [8]

если там есть что-то удовлетворяющее условию, ты ее получишь.
если нет, то ты сам хотел чтобы

вот там нужно получить не первую запись а первую при условии T2.MyField = T3.MyField


 
Сергей М. ©   (2008-10-01 16:28) [9]


> ivanoff   (01.10.08 16:09) [7]


Не прояснилось, зачем тебе этот NULL  ..


> если там есть что-то


Это условие соответствует непустому НД


> ели нет


Это условие соответствует пустому НД.

В чем проблема, зачем тут еще нул какой-то понадобился ?


 
ivanoff   (2008-10-01 16:30) [10]

так мой вопрос именно в том как построить условие так, чтоб получить ВСЕ записи из T1 а из T3 получить первое соответствующее условию.

если Т3.MyField не соответствует условию, запись из Т1 должна попасть в выборку а на место Т3 должно быть NULL -> что значит в Т3 нету записей где   (T1.id3 = T3.id) AND (T2.MyField = T3.MyField)


 
Сергей М. ©   (2008-10-01 16:37) [11]

А-а-а !.. похоже, я начал понимать, куда гнет автор)

Ему, видимо, RIGHT JOIN нужен, тогда при наличии хотя бы одной записи в T1 и отсутствии свя\занных записей в присоединенных таким образом T2 и T3 получится почти то что ему нужно - в НД будет одна запись с NULL во 2-м поле


 
Поросенок Винни-Пух ©   (2008-10-01 16:39) [12]

мои знакомые блондинки и то понятнее изъясняются


 
Sergey13 ©   (2008-10-01 16:50) [13]

SELECT
T1.f1,
Count(T3.*),min(T3.DataFld)

FROM T1
LEFT JOIN T2 ON T1.id2 = T2.id
LEFT JOIN T3 ON T1.id3 = T3.id

GROUP BY T1.id1


 
Johnmen ©   (2008-10-01 16:53) [14]

Тоже потренирую телепатию :)
Вот это что-ли:
SELECT
First(T1.f1),
First(T3.DataFld)      <------ ...

FROM T1
LEFT JOIN T2 ON T1.id2 = T2.id
LEFT JOIN T3 ON (T1.id3 = T3.id) AND (T2.MyField = T3.MyField)

GROUP BY T1.id1


 
ivanoff   (2008-10-01 17:00) [15]

неа...
у меня несколько связок LEFT JOIN и Access не принимает RIGHT JOIN

мне бы в ON условии присобачить (T1.id3 = T3.id) AND (T2.MyField = T3.MyField)


 
ivanoff   (2008-10-01 17:03) [16]

:)


> ON (T1.id3 = T3.id) AND (T2.MyField = T3.MyField)


я тож так думал но не принимает: Join expression not supported


 
Сергей М. ©   (2008-10-01 17:08) [17]


> Access не принимает RIGHT JOIN


С каких это пор ?
http://office.microsoft.com/en-us/access/HA012314891033.aspx?pid=CH100728991033


 
ivanoff   (2008-10-01 17:20) [18]

я не говорил "в принципе" не принимает

в моем случае не принимает

...
FROM ((((T1
LEFT JOIN ...)
LEFT JOIN T2 ON T1.id2 = T2.id)
LEFT JOIN ...)
RIGHT JOIN T3 ON T1.id3 = T3.id)

-> Join expression not supported


 
Сергей М. ©   (2008-10-01 17:23) [19]


> ivanoff   (01.10.08 17:20) [18]


Воспользуйся виз.конструктором запросов самого Access"а - он сам построит лексически и синтаксически правильный текст интересующего тебя SQL-запроса.


 
ivanoff   (2008-10-01 17:31) [20]

и как мне там указать второе условие


 
Сергей М. ©   (2008-10-01 17:35) [21]


> как мне там указать второе условие


Что значит "как" ? Средствами мастера конструирования запросов в составе MS Access !



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

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

Наверх





Память: 0.49 MB
Время: 0.007 c
15-1240433713
Юрий
2009-04-23 00:55
2009.06.28
С днем рождения ! 23 апреля 2009 четверг


15-1239899831
dmk
2009-04-16 20:37
2009.06.28
Интерфейс программиста


2-1242037565
TheEd
2009-05-11 14:26
2009.06.28
Модификация вида lookup-поля


2-1242076140
***Evil***
2009-05-12 01:09
2009.06.28
OnClick на SubMenu не работает?


11-1203187158
andreil
2008-02-16 21:39
2009.06.28
Правильное отображение рисунков в ЛистБоксе





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