Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрос не объединение таблиц [D7, IB6.x]


Страницы:   1 2

ASVShade ©   (2005-09-05 03:14:00) 

Есть две таблицы T1,T2

Таблицы связаны полем mark
T1.mark=T2.mark

T2.mark - поле уникальное
Запись удовлетворяющая условию T1.mark=T2.mark как может присутствовать в таблице T2 так и нет.

Нужно сформировать запрос возвращающий записи из обоих таблиц.

Если запись в таблице T2 есть то вернуть нужно данные как вернёт запрос
select *
from T1,T2
where (T1.mark=T2.mark) and (T1.us=:us)

Если записи в таблице T2 нет то вернуть нужно данные таком же формате как и выше, единственное все поля из таблицы T2 заменить например на NULL

Пример результата работы нужного запроса: (где us=3)

T1.id  T1.us  T1.mark  T2.id  T1.mark
1      3      1        1      1
2      3      2        3      2
3      3      3        null   null
4      3      3        null   null
5      3      4        2      4
6      3      5        null   null
7      3      2        8      2


ASVShade   (2005-09-05 07:57:00) [21]

Пробывал, но тогда сервак виснет. Задумывается на очень долго только ctrl+alt+delete помогает


ЮЮ   (2005-09-05 04:09:00) [22]

убрать (T1.mark=T2.mark)  из WHERE туда, куда следует, именно в условие объединения, а WHERE оставить исключетельно для отбора:

select *
from
 T1
 left join T2 on (T1.mark=T2.mark)
where (T1.us=:us)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо