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

Вниз

Помогите с SQL   Найти похожие ветки 

 
progger   (2002-08-23 15:56) [0]

Добрый день, ув. знатоки, не могли бы вы мне помочь, дело в том, что я делаю запрос SQL:
select "sub1.db".TDate,
"sub2.db".TDate,
"sub2".TWhat
from "sub1.db",
"sub2.db"
where "sub1.db".Conf="sub2.db".Conf
а оно мне выдает декартово произведение этих двух таблиц, хотя кол-во строк в каждой из них одинаково.
Заранее благодарен.


 
Val   (2002-08-23 15:58) [1]

крайне странно, что есть conf?


 
progger   (2002-08-23 16:01) [2]

Conf - это поле, по которому отбираются данные


 
Reindeer Moss Eater   (2002-08-23 16:04) [3]

Если все поля Conf содержат одно значение, то произведение обеспечено.


 
Johnmen   (2002-08-23 16:04) [4]

поподробней про conf и стр-ру таблиц...


 
progger   (2002-08-23 16:17) [5]

вообщем conf - это допущен ли студент к контрольной
TDate - дата, когда был выставлен балл
Twhat - За какой вид работы балл
sub1.db - один предмет, напр. Математика
sub3.db - другой предмет, напр. Физика
Кол-во строк в обеих таблицах одинаково, но количество дат - разное, вообщем "до отказа" заполнено только поле conf, и мне нужно сединить эти две таблицы так, чтобы не было произведения...


 
Reindeer Moss Eater   (2002-08-23 16:25) [6]

А смысл объединения по полю "допущен ли студент к контрольной" ??????????


 
Val   (2002-08-23 16:27) [7]

естественно, вам нужно изменить условие, но существует недостаток информации - как именно соединять таблицы, кто туда должен попасть? сформулируйте задачу конкретнее.


 
Reindeer Moss Eater   (2002-08-23 16:31) [8]

Reindeer Moss Eater (23.08.02 16:04)
Если все поля Conf содержат одно значение, то произведение обеспечено.



 
progger   (2002-08-23 16:45) [9]

Ладно, сформулирую вопрос конкретнее:
есть две(или более) таблицы, с одинаковым кол-вом строк. Необходимо объединить их с помощью запроса SQL так, чтобы результат не был декартовым произведением этих таблиц.
Помогите, пожалуйста - очень надо...


 
Reindeer Moss Eater   (2002-08-23 16:46) [10]

Не объединяй таблицы по полю "допущен ли студент к контрольной"


 
Val   (2002-08-23 16:59) [11]

..и количество строк здесь не причем.
а задачу все-таки постарайся сформулировать, а то получается надо сделать хоть что-то, чтоб фигня не получилась :)


 
progger   (2002-08-23 17:02) [12]

ну в принципе это главное - шоб не было фигни. Две таблицы с сопоставимыми типами поле нужно объединить в Query. Как???


 
Reindeer Moss Eater   (2002-08-23 17:08) [13]

Ты же объединил уже, что именно тебе не нравится? :)


 
progger   (2002-08-23 18:16) [14]

мне не нравится, что результат объединения - произведение этих таблиц


 
Hro   (2002-08-23 23:47) [15]

Может точно скажешь что те надо, а мы тут обмозгуем.


 
ЮЮ   (2002-08-24 07:21) [16]

where "sub1.db".StudID="sub2.db".StudID,
где StudID - уникальный индекс студента, который, надеюсь :-), есть в обеих таблицах


 
MsGuns   (2002-08-24 19:02) [17]

Можно, наверное, это сделать одним запросом (я не экстраверт в секюэле), но я такие вещи решаю в несколько последовательных шагов с сохранением промежуточных рез-тов для использования в следующем шаге.


 
Vlad1   (2002-08-25 13:32) [18]

Попробуй:
select TDate,
TWhat
from "sub1.db",
"sub2.db"
where "sub1.db".Conf="sub2.db".Conf


 
Чудак   (2002-08-26 05:35) [19]

Попробуй использовать параметры компонента Query типа если например у тебя главная база ("Sub1.db" и Query1), а вспомогательная ("Sub2.db" и Query2) то задай для Query2 св-во DataSource = Query1. И значение SQL напиши приблизительно так:
"select (нужные поля) from sub2 where conf=:conf"
и в св-ве Param компонента Query в редакторе должен быть этот параметр.
Гарантию что сработает не дам (так как сам недавно начал сукелем заниматься), но попробуй может получится.
Если получиться то скажи получилось ли.


 
ЮЮ   (2002-08-26 06:04) [20]

Vlad1 © (25.08.02 13:32)
Чудак (26.08.02 05:35)
Прежде чем советовать, особенно, когда "сам недавно начал сукелем заниматься", посмотрите, что пишет Автор:

progger © (23.08.02 16:17)
вообщем conf - это допущен ли студент к контрольной

т.о. conf - вовсе не то поле, по которой следует связывать две таблицы.


 
Reindeer Moss Eater   (2002-08-26 08:31) [21]

>ЮЮ Да то это поле! :)))
Автор просто хочет получить список всех возможных комбинаций из 2 студентов, допущенных к экзаменам. В каждой паре у него один допущен к одному, а другой - к другому экзамену.


 
ЮЮ   (2002-08-26 08:59) [22]

>Reindeer Moss Eater (26.08.02 08:31)
У автора: where "sub1.db".Conf="sub2.db".Conf

Следовательно, он хочет попарно объединить "допущен"-"допущен" и "недопущен"-"недопущен". Тогда уж лучше объединять "допущен"-"недопущен", чтобы "допущенный" помог "недопущенному" получить допуск :-)


 
Reindeer Moss Eater   (2002-08-26 09:01) [23]

>ЮЮ
Не обязательно, "не допущен" это вполне может быть NULL. Хотя твоя идея очень мне понравилась :)


 
ЮЮ   (2002-08-26 09:10) [24]

>Не обязательно, "не допущен" это вполне может быть NULL
Вряд ли он будет допущен, если он круглый NULL :-). К тому же у автора "вообщем "до отказа" заполнено только поле conf" . Может в этом и причина отказа? :-)



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

Форум: "Базы";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.007 c
14-50946
elektro
2002-08-21 08:47
2002.09.16
Сетевая плата D-Link


1-50662
lmr
2002-09-02 16:18
2002.09.16
Как Variant привести к int64 ?


1-50755
kay
2002-09-05 23:06
2002.09.16
Image.Create


3-50641
maxim2
2002-08-27 08:10
2002.09.16
Как скопировать записи из файлов DBF(dBase3) в таблицы Paradox


6-50883
Хусга
2002-07-02 21:41
2002.09.16
Как принять сообщение посланое Winpopup`ом или net send`ом ?





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