Форум: "Базы";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];
ВнизЗапрос на Найти похожие ветки
← →
McSimm2 (2003-11-26 17:16) [0]Как можно проще написать следующий запрос?
select *
from table1
where ((table1.field1, table1.field2, table1.field3) in
(select field1, field2, field3 from table2 where field4 = "q") or
((table1.field1, table1.field2, table1.field3) not in
(select field1, field2, field3 from table2)
мне нужно table1 связать с table2 при равенстве в table2 поля
field4 = "q" или же если такого равенства нет вернуть запись из
таблицы table1 если её нет в table2 по связке
field1, field2, field3
В таблице table1 и table2 построены индексы по полям
field1, field2, field3
← →
Johnmen (2003-11-26 17:25) [1]
select *
from table1
left join table2 on
(table1.field2=table2.field2) and
(table1.field1=table2.field1) and
(table1.field3=table2.field3) and
(table2.field4="q")
для Оракла>=9.0
← →
McSimm2 (2003-11-26 17:28) [2]Oracle у меня 8.
и мне нужно из таблицы table1 вернуть запись если
при связке этой таблицы с table2 - в table2 окажется равенство 4
поля или же
если грубо говоря первая таблица "не привяжется" ко второй
← →
asp (2003-11-26 17:31) [3]Способов можно придумать много :)
Для упрощения я взял только связку по FIELD1. Сути это не меняет.
SELECT T1.*
FROM TABLE1 T1
LEFT OUTER JOIN TABLE2 T2 ON (T1.FIELD1 = T2.FIELD1)
WHERE T2.FIELD2 = "q"
OR NOT(EXISTS(SELECT T3.FIELD1 FROM TABLE3 T3 WHERE T3.FIELD1 = T1.FIELD1))
← →
asp (2003-11-26 17:34) [4]Пардон, не внял задачу :\
← →
Johnmen (2003-11-26 17:39) [5]>McSimm2
Попробуй так, хотя сомнительно...
select *
from table1,table2
where
(table1.field2=table2.field2(+)) and
(table1.field1=table2.field1(+)) and
(table1.field3=table2.field3(+)) and
(table2.field4="q")
← →
Sandman25 (2003-11-26 17:51) [6]select *
from table1
where ((table1.field1, table1.field2, table1.field3) not in
(select field1, field2, field3 from table2 where field4 <> "q")
← →
Petr V. Abramov (2003-11-26 19:58) [7]мутно :)
можно еще раз и по порядку:
по каким полям связываются t1 и t2?
какое условие стоит на t2?
если (хорошо ли я понял?) в t2 нет ни одной записи, удовлетворяющей условию, тогда что?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c