Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2015, 11:58   #1
TYMON
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 80
По умолчанию Правильность запроса

Здравствуйте. Есть таблице "predpriyatie", три поля у неё связаны с другими тремя таблицами, но мне не надо все столбцы выводить. Делаю запрос для вывода данных из трех таблиц, запись в таблице "predpriyatie" одна, а выводится четыре раза ровно столько сколько у меня записей "kved". Связи один ко многим квэд-предприятие, н_п-предприятие

Код:
frm_oprr->ADOQuery_oprr->Close();
		frm_oprr->ADOQuery_oprr->SQL->Clear();
		//запрос на удаление
		frm_oprr->ADOQuery_oprr->SQL->Add("SELECT `predpriyatie`.`reg_nomer`, `predpriyatie`.`data_reg`, `predpriyatie`.`tip`, `predpriyatie`.`nazvanie`, `predpriyatie`.`ik`, `predpriyatie`.`seriya`, `n_p`.`gorod`, `predpriyatie`.`fakt_adress`, `predpriyatie`.`fio_direkt`, `predpriyatie`.`telefon`, `predpriyatie`.`e-mail`, `kved`.`kved`, `predpriyatie`.`chisl`, `predpriyatie`.`prim` FROM  predpriyatie, n_p, kved WHERE `predpriyatie`.`n_p_id_gorod`=`n_p`.`id_gorod` OR (`predpriyatie`.`kved`=`kved`.`kved`)");

	   frm_oprr->DataSource_oprr->DataSet=frm_oprr->ADOQuery_oprr;
Подскажите пожалуйста как запрос правильно составить?

Последний раз редактировалось TYMON; 21.05.2015 в 12:01.
TYMON вне форума Ответить с цитированием
Старый 21.05.2015, 14:51   #2
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

Если у Вас в условии where стоит OR, то при выполнении одного условия второе не проверяется. Т.е. если для записи из таблицы predpriyatie нашлась запись из таблицы n_p, то связка с kved уже не будет учитываться, т.е. будут выведены все записи из таблицы kved.
Не совсем понял, что именно Вам требуется, но вероятнее всего OR нужно заменить на AND. Тогда будут показаны все записи из predpriyatie и соответствующие им данные из n_p и kved.
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка на правильность Mr_M Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 09.04.2014 23:17
Правильность кода Dima-War Общие вопросы C/C++ 8 14.07.2013 21:18
Правильность ip OPF_Nik Работа с сетью в Delphi 1 29.01.2010 23:21
правильность кода DeDoK Работа с сетью в Delphi 12 22.11.2009 09:43
Правильность URL Klim Bassenger Microsoft Office Excel 7 03.09.2009 12:36