![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с SQL [D6, Paradox]
progger © (2002-08-23 15:56:00)Добрый день, ув. знатоки, не могли бы вы мне помочь, дело в том, что я делаю запрос SQL:
select "sub1.db".TDate,
"sub2.db".TDate,
"sub2".TWhat
from "sub1.db",
"sub2.db"
where "sub1.db".Conf="sub2.db".Conf
а оно мне выдает декартово произведение этих двух таблиц, хотя кол-во строк в каждой из них одинаково.
Заранее благодарен.
ЮЮ (2002-08-26 09:10:00) [1]>Не обязательно, "не допущен" это вполне может быть NULL
Вряд ли он будет допущен, если он круглый NULL :-). К тому же у автора "вообщем "до отказа" заполнено только поле conf" . Может в этом и причина отказа? :-)
Reindeer Moss Eater (2002-08-26 09:01:00) [2]>ЮЮ
Не обязательно, "не допущен" это вполне может быть NULL. Хотя твоя идея очень мне понравилась :)
ЮЮ (2002-08-26 08:59:00) [3]>Reindeer Moss Eater (26.08.02 08:31)
У автора: where "sub1.db".Conf="sub2.db".Conf
Следовательно, он хочет попарно объединить "допущен"-"допущен" и "недопущен"-"недопущен". Тогда уж лучше объединять "допущен"-"недопущен", чтобы "допущенный" помог "недопущенному" получить допуск :-)
Reindeer Moss Eater (2002-08-26 08:31:00) [4]>ЮЮ Да то это поле! :)))
Автор просто хочет получить список всех возможных комбинаций из 2 студентов, допущенных к экзаменам. В каждой паре у него один допущен к одному, а другой - к другому экзамену.
ЮЮ (2002-08-26 06:04:00) [5]Vlad1 © (25.08.02 13:32)
Чудак (26.08.02 05:35)
Прежде чем советовать, особенно, когда "сам недавно начал сукелем заниматься", посмотрите, что пишет Автор:
progger © (23.08.02 16:17)
вообщем conf - это допущен ли студент к контрольной
т.о. conf - вовсе не то поле, по которой следует связывать две таблицы.
Чудак (2002-08-26 05:35:00) [6]Попробуй использовать параметры компонента Query типа если например у тебя главная база ("Sub1.db" и Query1), а вспомогательная ("Sub2.db" и Query2) то задай для Query2 св-во DataSource = Query1. И значение SQL напиши приблизительно так:
"select (нужные поля) from sub2 where conf=:conf"
и в св-ве Param компонента Query в редакторе должен быть этот параметр.
Гарантию что сработает не дам (так как сам недавно начал сукелем заниматься), но попробуй может получится.
Если получиться то скажи получилось ли.
Vlad1 (2002-08-25 13:32:00) [7]Попробуй:
select TDate,
TWhat
from "sub1.db",
"sub2.db"
where "sub1.db".Conf="sub2.db".Conf
MsGuns (2002-08-24 19:02:00) [8]Можно, наверное, это сделать одним запросом (я не экстраверт в секюэле), но я такие вещи решаю в несколько последовательных шагов с сохранением промежуточных рез-тов для использования в следующем шаге.
ЮЮ (2002-08-24 07:21:00) [9]where "sub1.db".StudID="sub2.db".StudID,
где StudID - уникальный индекс студента, который, надеюсь :-), есть в обеих таблицах
Hro (2002-08-23 23:47:00) [10]Может точно скажешь что те надо, а мы тут обмозгуем.
progger (2002-08-23 18:16:00) [11]мне не нравится, что результат объединения - произведение этих таблиц
Reindeer Moss Eater (2002-08-23 17:08:00) [12]Ты же объединил уже, что именно тебе не нравится? :)
progger (2002-08-23 17:02:00) [13]ну в принципе это главное - шоб не было фигни. Две таблицы с сопоставимыми типами поле нужно объединить в Query. Как???
Val (2002-08-23 16:59:00) [14]..и количество строк здесь не причем.
а задачу все-таки постарайся сформулировать, а то получается надо сделать хоть что-то, чтоб фигня не получилась :)
Reindeer Moss Eater (2002-08-23 16:46:00) [15]Не объединяй таблицы по полю "допущен ли студент к контрольной"
progger (2002-08-23 16:45:00) [16]Ладно, сформулирую вопрос конкретнее:
есть две(или более) таблицы, с одинаковым кол-вом строк. Необходимо объединить их с помощью запроса SQL так, чтобы результат не был декартовым произведением этих таблиц.
Помогите, пожалуйста - очень надо...
Reindeer Moss Eater (2002-08-23 16:31:00) [17]Reindeer Moss Eater (23.08.02 16:04)
Если все поля Conf содержат одно значение, то произведение обеспечено.
Val (2002-08-23 16:27:00) [18]естественно, вам нужно изменить условие, но существует недостаток информации - как именно соединять таблицы, кто туда должен попасть? сформулируйте задачу конкретнее.
Reindeer Moss Eater (2002-08-23 16:25:00) [19]А смысл объединения по полю "допущен ли студент к контрольной" ??????????
progger (2002-08-23 16:17:00) [20]вообщем conf - это допущен ли студент к контрольной
TDate - дата, когда был выставлен балл
Twhat - За какой вид работы балл
sub1.db - один предмет, напр. Математика
sub3.db - другой предмет, напр. Физика
Кол-во строк в обеих таблицах одинаково, но количество дат - разное, вообщем "до отказа" заполнено только поле conf, и мне нужно сединить эти две таблицы так, чтобы не было произведения...