![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос не объединение таблиц [D7, IB6.x]
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)