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

Вниз

как обратиться к результату Query1 с Query2   Найти похожие ветки 

 
Руслан   (2009-03-11 07:21) [0]

Здравствуйте

как обратиться к результату Query1 с Query2


 
b@v ©   (2009-03-11 07:22) [1]


> как обратиться к результату Query1 с Query2

Не совсем понятно, сами запросы можно в студию ?


 
Руслан   (2009-03-11 07:49) [2]

1.Написал запрос Query1 -  SELECT im, fam FROM my_table

2. запрос Query2              -   SELECT im  FROM  Query1

Примерно так  на 2 ом ошибка вылезает  типа Query1.dbf несуществует


 
b@v ©   (2009-03-11 08:16) [3]


> Query1


Это не таблица

> SELECT im  FROM  Query1

Так не проканает. А какая вообще цель преследуется ? Что в итоге должно получиться ?


 
Руслан   (2009-03-11 08:23) [4]

мне нужно сделать выборку из таблиц с начало я их  объединяю по ключевому полю потом выборку из результата  мне надо


 
Сергей М. ©   (2009-03-11 08:38) [5]


> с начало я их  объединяю


Что-то не видать в тексте 1-го запроса  никакого объединения


> потом выборку из результата  мне надо


Результат выполнения 1-го запроса и так уже есть "выборка", зачем потребовалась "выборка" из "выборки" - совершенно непонятно


 
Руслан   (2009-03-11 08:50) [6]

потому что  сложный  сложный запрос 1 и 2


 
Сергей М. ©   (2009-03-11 08:52) [7]

И что ?
Почему не сделать один сложный запрос ?


 
Sergey13 ©   (2009-03-11 08:55) [8]

> [6] Руслан   (11.03.09 08:50)

Что хоть за СУБД?


 
Руслан   (2009-03-11 09:02) [9]

КАК ?

1.SELECT * FROM таблица1 INNER JOIN таблица2 ON таблица1.id = таблица2.id

2. SELECT CL.F, CL.I, CL.O, CL.God, CL.Uid AS Uid1, CR.Uid AS Uid2, CL.Start AS Start1, CL.Finish AS Finish1, CR.Start AS Start2, CR.Finish AS Finish2 FROM РЕЗУЛЬТАТ ЗАПРОСа CL INNER JOIN РЕЗУЛЬТАТ ЗАПРОСа CR ON
CL.Uid = CR.Uid
AND CL.F == CR.F ;
AND CL.I == CR.I ;
AND CL.O == CR.O ;
AND CL.God == CR.God ;
AND CL.Start <= CR.Finish ;
AND CL.Finish >= CR.Start


 
Руслан   (2009-03-11 09:03) [10]

Просто 12 таблиц dbf мне нужно цифорки


 
Руслан   (2009-03-11 09:12) [11]

CL.Uid != CR.Uid  там такая строчка


 
Сергей М. ©   (2009-03-11 09:19) [12]


> 12 таблиц


Они что, все одинаковые по структуре ?


 
ЮЮ ©   (2009-03-11 10:47) [13]


> потому что  сложный  сложный запрос 1 и 2


>
> 1.SELECT * FROM таблица1 INNER JOIN таблица2 ON таблица1.
> id = таблица2.id
>
> 2. SELECT CL.F, CL.I, CL.O, CL.God, CL.Uid AS Uid1, CR.Uid
> AS Uid2, CL.Start AS Start1, CL.Finish AS Finish1, CR.Start
> AS Start2, CR.Finish AS Finish2 FROM РЕЗУЛЬТАТ ЗАПРОСа CL
> INNER JOIN РЕЗУЛЬТАТ ЗАПРОСа CR ON
> CL.Uid = CR.Uid
> AND CL.F == CR.F ;
> AND CL.I == CR.I ;
> AND CL.O == CR.O ;
> AND CL.God == CR.God ;
> AND CL.Start <= CR.Finish ;
> AND CL.Finish >= CR.Start


И это сложный запрос? Связать 4 таблицы? А ты умеешь только попарно?


 
Плохиш ©   (2009-03-11 10:52) [14]


> Руслан   (11.03.09 07:21)
>
> Здравствуйте
>
> как обратиться к результату Query1 с Query2

Никак.


 
Руслан   (2009-03-11 10:55) [15]

Для меня это очень сложный запрос я умею только так

помогите составить


 
Сергей М. ©   (2009-03-11 10:59) [16]


> Руслан


Ты не ответил на [12]
Тебе все 12 таблиц нужно связать в одном запросе что ли ?


 
ЮЮ ©   (2009-03-11 11:02) [17]

SELECT ...
FROM  
 таблица1 L1
 JOIN таблица2 L2 ON L1.id = L2.id
 JOIN таблица1 R1 ON L1.Uid = R1.Uid  ....
 JOIN таблица2 R2 ON L2.id = R2.id ...


 
Руслан   (2009-03-11 11:02) [18]

Желательно


 
Сергей М. ©   (2009-03-11 11:08) [19]


> Руслан   (11.03.09 11:02) [18]


Подорзреваю что не только нежелательно, но и лишено смысла.
Опиши задачу подробно - что за данные в этих таблицах и что нужно получить в результирующей выборке


 
Руслан   (2009-03-11 11:10) [20]

>> Сергей М.

таблицы парные результат из  2 х талиц    таких 6 пар

мне нужно взять две таблицы и достать из них данные


 
Руслан   (2009-03-11 11:18) [21]

Таблица 1    Uid   |   f   |   i   |   O   |   god  |   id

Таблица 2    Uid   |   Start |   Finish  |  id  

ID Ключевое поле

Мне нужны все повторяющееся строчки у которых F =F,  I = I,  O =O, God =God, Start <= Finish , Finish >= Start

 Uid   |   f   |   i   |   O   |   god  |  Start |   Finish


 
Сергей М. ©   (2009-03-11 11:24) [22]


> ID Ключевое поле


А что тогда за поле Uid ?


 
Руслан   (2009-03-11 11:26) [23]

Uid  просто порядок строк с авто приращивавшем  да забыл  

Uid != Uid


 
Сергей М. ©   (2009-03-11 11:32) [24]

А как тогда д.б. связаны между собой эти самые "6 пар" ?


 
Руслан   (2009-03-11 11:40) [25]

6 пар я для них буду делать тоже самое что и для 1ой пары отдельно для каждой пары


 
Dennis I. Komarov ©   (2009-03-11 12:03) [26]


> Руслан   (11.03.09 09:02) [9]
> 2. SELECT CL.F, CL.I, CL.O, CL.God, CL.Uid AS Uid1, CR.Uid
> AS Uid2, CL.Start AS Start1, CL.Finish AS Finish1, CR.Start
> AS Start2, CR.Finish AS Finish2 FROM РЕЗУЛЬТАТ ЗАПРОСа CL
> INNER JOIN (SELECT * FROM таблица1 INNER JOIN таблица2 ON таблица1.
> id = таблица2.id)
CR ON
> CL.Uid = CR.Uid
> AND CL.F == CR.F ;
> AND CL.I == CR.I ;
> AND CL.O == CR.O ;
> AND CL.God == CR.God ;
> AND CL.Start <= CR.Finish ;
> AND CL.Finish >= CR.Start

? СУБД какая?


 
Руслан   (2009-03-11 12:06) [27]

foxpro


 
Руслан   (2009-03-11 12:07) [28]

подключил через DBE


 
Руслан   (2009-03-11 12:08) [29]

>> Dennis I. Komarov ©  

мне  sql просто желательно


 
Руслан   (2009-03-11 12:18) [30]

>>ЮЮ ©   (11.03.09 11:02) [17]

как объединить помогите


 
Медвежонок Пятачок ©   (2009-03-11 12:20) [31]

select * from somewhere
where <where from first query>
and
<where from second query>


 
Сергей М. ©   (2009-03-11 12:21) [32]


> для них буду делать тоже самое что и для 1ой пары


А зачем тогда кол-во "пар" упомянул, если "тоже самое" ?

И по-прежнему не понятно, зачем нужен 2-й запрос ..

SELECT нужные_поля
FROM первая_я_таблица_в_паре INNER JOIN вторая_я_таблица_в_паре
ON связь_между_ними_по_полю_ID
WHERE условия_отбора_записей_из_этих_двух_связанных_таблиц


 
Руслан   (2009-03-11 12:27) [33]

первая_я_таблица_в_паре      ---  Это как ?  

таблица1 L1  так что ли ?


 
Медвежонок Пятачок ©   (2009-03-11 12:32) [34]

лучше T1


 
Сергей М. ©   (2009-03-11 12:37) [35]


> таблица1 L1  так что ли ?


Почем мне знать так или не так ?

Судя по
SELECT * FROM таблица1 INNER JOIN таблица2 ON таблица1.id = таблица2.id

у тебя это таблица1


 
Руслан   (2009-03-11 12:41) [36]

Спасибо всем буду пробовать


 
Руслан   (2009-03-11 13:52) [37]

SELECT  Uid,   f,   i,   O,  god,    Start,  Finish
FROM таблица1 Т1 INNER JOIN таблица2 Т2
ON Т1.ID = Т2.ID
WHERE Т1.Uid != Т2.Uid
AND Т1.F == Т2.F ;
AND Т1..I == Т2.I ;
AND Т1..O == Т2.O ;
AND Т1..God == Т2.God ;
AND Т1..Start <= Т2.Finish ;
AND Т1..Finish >= Т2.Start

invalid field name  
F.

Я так понял не понимает что за поле !!!


 
Amoeba ©   (2009-03-11 14:29) [38]


> Руслан   (11.03.09 11:18) [21]
>
> Таблица 1    Uid   |   f   |   i   |   O   |   god  |  
> id
>
> Таблица 2    Uid   |   Start |   Finish  |  id  
>

В T2 поля F у тебя ведь нет. Так убери из запроса
AND Т1.F == Т2.F ;
а также все ;


 
Руслан   (2009-03-11 14:30) [39]

SELECT  *
FROM таблица1 Т1 INNER JOIN таблица2 Т2
ON Т1.ID = Т2.ID
WHERE Т1.Uid != Т2.Uid
AND Т1.F == Т2.F
AND Т1.I == Т2.I
AND Т1.O == Т2.O
AND Т1.God == Т2.God
AND Т1.Start <= Т2.Finish
AND Т1.Finish >= Т2.Start

invalid field name  
F.                          

?????????      Сергей М - почему не идет ?


 
Сергей М. ©   (2009-03-11 14:34) [40]


> почему не идет ?


Потому что см. [38]


 
Руслан   (2009-03-11 14:37) [41]

>> Amoeba ©

В T2 поля F у тебя ведь нет. Так убери из запроса
AND Т1.F == Т2.F ;
а также все ;

А как у меня одинаковые строки  выдут  ?

В таблицы очень много повторяющийся записей я с ними работаю

из повторяющихся записей  мне нужно выбрать у кого пересикаются или одинаковые Start, Finish
Start <= Finish  AND Finish >= Start


 
Руслан   (2009-03-11 14:47) [42]

Т1.F == Т1.F  

НЕ пашет верней пашет но результата нет


 
Sergey13 ©   (2009-03-11 14:49) [43]

> [41] Руслан   (11.03.09 14:37)
> В таблицы очень много повторяющийся записей я с ними работаю

Таблицы одинаковые, записи в них одинаковые.
Чувствую, что тебе пора ВСЕ переписывать. 8-)


 
Руслан   (2009-03-11 14:57) [44]

из повторяющихся записей , строк по полям      "  f   |   i   |   O   |   god  | "

мне нужно выбрать у кого пересекаются  или одинаковые  |   Start |   Finish  |

Для этого я объединял таблицы а затем проверял на повторные записи


 
Эстет   (2009-03-11 15:11) [45]

Блин, тебе всё расжевали и в рот положили, осталось только сглотнуть. ГЛОТАЙ!


 
Руслан   (2009-03-11 16:14) [46]

>> Эстет

>> Блин, тебе всё расжевали и в рот положили, осталось только сглотнуть. ГЛОТАЙ!

Суть задачи [44]

Если умный напиши решение !!!


 
MsGuns ©   (2009-03-11 16:20) [47]

1. Вместо биде - ADO
2. Используй вложенные запросы (Select from select)


 
Руслан   (2009-03-11 16:23) [48]

ADO для меня сложно


 
MsGuns ©   (2009-03-11 16:33) [49]

>Руслан   (11.03.09 16:23) [48]
>ADO для меня сложно

Дааа ? А программирование - просто ?
Так вот АДО (точнее стандарт сиквеля и "нюансы" строки соединения) - это детсад по сравнению с делфей и вообще ООП.

"Глаза боятся - руки делают"
(Старинная русская пословица)


 
Palladin ©   (2009-03-11 16:34) [50]

Есть такая профессия - Родину подметать. )


 
Руслан   (2009-03-11 18:41) [51]

>> MsGuns ©  

Через какой драйвер в ADO подключить постые таблички .dbf


 
Anatoly Podgoretsky ©   (2009-03-11 19:51) [52]

> Руслан  (11.03.2009 18:41:51)  [51]

Кончайте это дело,это форум по Дельфи, а не по SQL


 
Сергей М. ©   (2009-03-11 20:09) [53]


> Руслан   (11.03.09 14:47) [42]
>
> Т1.F == Т1.F  
>
> НЕ пашет верней пашет


Так "пашет" или "НЕ пашет" ?)

p.s.
У тебя есть нечто под модным жупелом "моя девушка" ?
Она, этот "модный жупел", может быть в связи с этим "чуть-чуть беременна" ? Т.е. НЕ беременна верней беременна ?)))))


 
MsGuns ©   (2009-03-11 22:05) [54]

>Руслан   (11.03.09 18:41) [51]
>Через какой драйвер в ADO подключить постые таблички .dbf

Вот просто тупо набрал в гугле "ADO DBF" и первая же ссылка дала исчерпывающий ответ

http://www.motobit.com/tips/detpg_asp-dbf-database/

ЗЫ. Почему иногда меня не покидает мысль, что кто-то разводит здесь всех  ?


 
Германн ©   (2009-03-12 00:20) [55]


> Palladin ©   (11.03.09 16:34) [50]
>
> Есть такая профессия - Родину подметать. )
>

+1
:)


 
Руслан   (2009-03-12 07:01) [56]

Все тут такие умники вот так сделай вот так.

У меня были два запроса и все с ними работает !!!

Я спрашивал !

>> как обратиться к результату Query1 с Query2

ответ >>НИКАК !!!        

я спросил Хорошо а как можно ?

Соедини запросы !!!
>>ЮЮ мне сказал
>>И это сложный запрос? Связать 4 таблицы? А ты умеешь только попарно?

Выкладываю вам запросы.
И вы вместо того чтоб  дать конкретный ответ на конкретный вопрос, лезите в дебри АМАЗОНКИ, мало того и ответы ваши не работают !!!
И ещё комментарии тут кто то бестолковые  вставляет  

Ну вот вы мастера я начинающий (и в форум начинающих залез даже) покажите что вы действительно здесь за дело сидите а не просто время проводите ответьте на вопрос .

Как составить один  запрос из моих двух   ???

1.SELECT * FROM таблица1 INNER JOIN таблица2 ON таблица1.id = таблица2.id

2. SELECT CL.F, CL.I, CL.O, CL.God, CL.Uid AS Uid1, CR.Uid AS Uid2, CL.Start AS Start1, CL.Finish AS Finish1, CR.Start AS Start2, CR.Finish AS Finish2 FROM РЕЗУЛЬТАТ ЗАПРОСа CL INNER JOIN РЕЗУЛЬТАТ ЗАПРОСа CR ON
CL.Uid != CR.Uid
AND CL.F == CR.F ;
AND CL.I == CR.I ;
AND CL.O == CR.O ;
AND CL.God == CR.God ;
AND CL.Start <= CR.Finish ;
AND CL.Finish >= CR.Start


 
ЮЮ ©   (2009-03-12 07:53) [57]

SELECT ...
FROM  
таблица11 L1
JOIN таблица21 L2 ON L1.id = L2.id

JOIN таблица12 R1 ON
  L1.Uid <> R1.Uid AND
  L1.F = R1.F AND
  L1.I = R1.I AND
  L1.O = R1.O AND
  L1.God = R1.God
JOIN таблица22 R2 ON
 L2.id = R2.id AND
 L2.Start <= R2.Finish AND
 L2.Finish >= R2.Start

Только у меня вызывает сомнение
 L2.Start <= R2.Finish AND
 L2.Finish >= R2.Start

т.е. в левой(L) таблице должны найтись записи, которые "начались раньше, чем закончились в правой" и при этом "закончились позже, чем начались в правой"

В реальных таблицах какого порядка Start и  Finish для "одинаковых" записей из таблица1<n>    


> Как составить один  запрос из моих двух   ???
>
> 1.SELECT * FROM таблица1 INNER JOIN таблица2 ON таблица1.
> id = таблица2.id
>
> 2. SELECT CL.F, CL.I, CL.O, CL.God, CL.Uid AS Uid1, CR.Uid
> AS Uid2, CL.Start AS Start1, CL.Finish AS Finish1, CR.Start
> AS Start2, CR.Finish AS Finish2 FROM РЕЗУЛЬТАТ ЗАПРОСа CL
> INNER JOIN РЕЗУЛЬТАТ ЗАПРОСа CR ON
> CL.Uid != CR.Uid
> AND CL.F == CR.F ;
> AND CL.I == CR.I ;
> AND CL.O == CR.O ;
> AND CL.God == CR.God ;
> AND CL.Start <= CR.Finish ;
> AND CL.Finish >= CR.Start


Из СКОЛЬКИ же таблиц ты выбираешь? из 2х или 4х?  
или здесь имелось  в виду
FROM РЕЗУЛЬТАТ-одного-ЗАПРОСа CL INNER JOIN РЕЗУЛЬТАТ-другого-ЗАПРОСа CR ON


 
Руслан   (2009-03-12 08:12) [58]

>>FROM РЕЗУЛЬТАТ-одного-ЗАПРОСа CL INNER JOIN РЕЗУЛЬТАТ-другого-ЗАПРОСа CR ON

FROM Query3 CL INNER JOIN Query3 CR ON

Запрос один и тот же --   таблица таже самая одна


 
Руслан   (2009-03-12 08:15) [59]

>>Только у меня вызывает сомнение
>> L2.Start <= R2.Finish AND
>> L2.Finish >= R2.Start

Сравниваю повторяющееся записи если диапазоны пересекаться  (попадают в период идентичной записи) то она мне и нужна если нет то нет


 
MsGuns ©   (2009-03-12 08:22) [60]

>Руслан   (12.03.09 07:01) [56]
>Все тут такие умники вот так сделай вот так.

И почему не сделал ни так и ни так ? Или сюда поприкалываться заглянул ?

>У меня были два запроса и все с ними работает !!!

Ну и ветер в спину  !

>Я спрашивал !

И все тут должны встать по стойке смирно ?

>> как обратиться к результату Query1 с Query2
>ответ >>НИКАК !!!        

Очень даже "как":
1) Использовать связки. Если не умеешь почитать справку - она имеется в дельфе (Local SQL)
2) Использовать в запросах ссылки на квери,хранящиеся в текстовиках (это для BDE). Если не знаешь - почитать что-нибудь.
3) Использовать вложенные запросы и ADO. Если не знаешь - срочно выучить - сегодня работать с БД без фундаментальных знаний нельзя.

Итак, были подсказаны СПОСОБЫ решения. И какова реакция ?

>Выкладываю вам запросы.
>И вы вместо того чтоб  дать конкретный ответ на конкретный вопрос, >лезите в дебри АМАЗОНКИ, мало того и ответы ваши не работают !!!

т.е. типа "идите вы все.. мне нужно ГОТОВОЕ решение, чтобы кто-то ЗА МЕНЯ сделал МОЮ работу, а я может быть сказу спасибо".

>Ну вот вы мастера я начинающий (и в форум начинающих залез даже) >покажите что вы действительно здесь за дело сидите а не просто время >проводите ответьте на вопрос .

Залазят на дерево, в окно, лаз или, пардон, дамам кое-куда.. А на форумы порядочные люди заходят. ;)  
Правила читал ? Похоже, чукча не читатель.


 
ЮЮ ©   (2009-03-12 08:27) [61]

Ну тогда пробуй [57] где
 таблица11 и таблица12 замени на таблица1
 таблица21 и таблица22 замени на таблица2


 
Руслан   (2009-03-12 08:37) [62]

Access violation at address 00000000 read of address 00000000


 
app ©   (2009-03-12 08:49) [63]

> Руслан  (12.03.2009 7:01:56)  [56]

В дальнейшем при ближайшем намеки на наезд, ветка будет закрываться незамедлительно и уже нам и модератору решать как отвечать.
Не нравится, обращайся в службу поддержки и требуй от них ответа на оплаченый вопрос.



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

Форум: "Начинающим";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.61 MB
Время: 0.017 c
2-1236876949
Timur
2009-03-12 19:55
2009.04.26
Сравнение массивов


8-1193571359
hahol_64_rus
2007-10-28 14:35
2009.04.26
курсор мыхи


6-1202258166
Alex603081
2008-02-06 03:36
2009.04.26
ClientSocket


2-1236864240
Zalum
2009-03-12 16:24
2009.04.26
Сохранить image из базы на диск


2-1236771470
dplz
2009-03-11 14:37
2009.04.26
Связанные переменные во всех формах





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