Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запрос в бидере 
:(
    Опции темы
Zigmyndshtein
Дата 15.6.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 21.3.2007

Репутация: нет
Всего: нет



подскажите пожалуйста как мне правильно организовать выборку. у меня есть 3 не связаных физически таблицы. мне нужно вывести все данны из этих таблиц которые отвечают требованию одной таблицы
вок как я это пытался сделать

select *from T1, T2, T3
where T1.v='УЗК'

при таком раскладе ничего не выводится, а если используется только одна табличка T1, то всё в порядке.

PM MAIL   Вверх
Dmi3ev
Дата 15.6.2008, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



если ты делаешь выборку, то все равно какая-то связь между таблицами есть (смысловая). Опиши структуру бд и условие отбора подробнее.

Добавлено через 45 секунд
то, что у тебя написано, конечно не работает, это совсем неверно.



--------------------

PM MAIL   Вверх
Zigmyndshtein
Дата 16.6.2008, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 21.3.2007

Репутация: нет
Всего: нет



есть 3 таблица, первая таблица общая(общий журнал), к ней вяжется по номеру заявки вторая(журнал), а к этой таблице вяжется по номеру заключения третья (результаты контроля). но все привязки только смысловые
так вот в первой таблице есть такое поле как вид контроля, мне нужно вывести все записи относящиеся только к одному виду контроля из первой таблицы и все записи из второй и третьей таблицы, но сделать это связано, что бы данные из первой таблицы соответствовали данным из второй, а данные из второй - соответствовали данным из третьей
PM MAIL   Вверх
Jorjio
Дата 16.6.2008, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 20.5.2008
Где: г. Москва

Репутация: нет
Всего: нет



select *from T1, T2, T3
where T1.v='УЗК' and 
T2.v='УЗК' and 
T3.v='УЗК'

Может так?
Что мешает связать и сделать промежуточную реляционную таблицу?
PM MAIL ICQ Skype   Вверх
Zigmyndshtein
Дата 16.6.2008, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 21.3.2007

Репутация: нет
Всего: нет



нет такой вариант не покатит. потому что текст "УЗК" содержится только в одной таблице, а в остальных его нет.
но я пробовал так сделать но правдо тож не заработало

SELECT *FROM T1, T2, T3
whery (T1.vid="УЗК") and (T1.n1=T2.n1) and (T2.n2=T3.n3)

поля конечно для доступа открываются запрос верный, но данные в Edit-ы не выводятся

Добавлено через 2 минуты и 11 секунд
чё делать ума не приложу, да и вроде как несколько TQuery использовать не рационально. и может лучше будет для каждой таблички открыть свой Query но тогда как мне отслеживать соответствие между таблицами?
PM MAIL   Вверх
jonie
Дата 17.6.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



Цитата

есть 3 таблица, первая таблица общая(общий журнал), к ней вяжется по номеру заявки вторая(журнал), а к этой таблице вяжется по номеру заключения третья (результаты контроля). но все привязки только смысловые
нифига не понял.
если у вас таблицы такие (FK сами настроете, главное суть):
Код

create table journal (id int IDENTITY(1,1) PRIMARY KEY, data text);
create table ticket (id int IDENTITY(1,1) PRIMARY KEY, tdata text);
create table control (id int IDENTITY(1,1) PRIMARY KEY, cdata text);

тогда выбрать все можно так:
Код

select *
from journal j
inner join ticket t on t.id=j.id
inner join control c on c.id=j.id AND с.cdata=N'ТИП_КОНТРОЛЯ1'

в чем проблемы-то?
вообще goto в форум про SQL.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Zigmyndshtein
Дата 17.6.2008, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 21.3.2007

Репутация: нет
Всего: нет



jonie,  на форуме по SQL это вопрос не решится, потому что запросы то верные, а вот билдер с ними то не совсем правильно работает
PM MAIL   Вверх
jonie
Дата 17.6.2008, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



Zigmyndshtein билдер с запросами не работает вообще. он работает с абстракцией к базе данных (например ADO). для запросов используйте компонент TADOQuery, например. если запрос выполняется корректно на базе, то и результат будет корректный в билдере.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Dmi3ev
Дата 17.6.2008, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



Код

SELECT T1.nZaiavki, T1.kontrol, T2.nZaiavki, T2.nZakluch, T3.nZakluch
FROM (T1 INNER JOIN T2 ON T1.nZaiavki = T2.nZaiavki) INNER JOIN T3 ON T2.nZakluch = T3.nZakluch
WHERE T1.kontrol='контроль1';

только в операторе select я указал только те поля, которые вы описали в объяснении, все остальные надо будет добавить.
nZaiavki-номер заявки (в таблицах 1 и 2)
nZakluch-номер заключения (в таблицах 2 и 3)
kontrol-вид контроля


--------------------

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0570 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.