Форум: "Начинающим";
Текущий архив: 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
связь_между_ними_по_полю_IDWHERE
условия_отбора_записей_из_этих_двух_связанных_таблиц
← →
Руслан (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