Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запрос не работает [D5, Paradox]


td ©   (2003-04-14 08:44:00) 

пишу так:

DataMod.GridQuery.SQL.Add("SELECT M3veds.ID, M3veds.DEL, M3veds.STAND, M3veds.INKLASS, M3veds.IZM1, M3inkls.kst, M3inkls.InklassCode "+
" FROM "M3veds.db" M3veds "+
" LEFT JOIN "M3inkls.db" M3inkls "+
" ON (M3veds.KLASSID = M3inkls.kst) WHERE (M3INKLS.INKLASSCODE = ""51"" ");


M3veds - большая таблица, M3inkls - дочерняя (один ко многим)
У меня делается выборка (записей попадает меньше), но совершенно неверно. Не могу понять в чем ошибка.
Спасибо!


ЮЮ   (2003-04-15 09:34:00) [1]

>У меня такое ощущение, что выборка вообще случайная. Во всяком случае не по отделу, это точно

Ты же выводишь M3inkls.InklassCode. Неужели там стоит не "51" ?


Соловьев   (2003-04-15 09:21:00) [2]

соедени по join:

SELECT M3veds.ID, M3veds.DEL, M3veds.STAND, M3veds.INKLASS, M3veds.IZM1, M3inkls.kst, M3inkls.InklassCode
FROM "M3veds.db" M3veds JOIN "M3inkls.db" M3inkls ON (M3veds.KLASSID = M3inkls.kst)
WHERE (M3INKLS.INKLASSCODE = 51)


и еще почему у тебя 51 в ""? У тебя не числовое поле?


td   (2003-04-15 09:07:00) [3]

Мне нужны записи главной, к которой привязаны записи из подчиненной где у подчиненной (M3INKLS.INKLASSCODE = ""51"" ")

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

У меня такое ощущение, что выборка вообще случайная. Во всяком случае не по отделу, это точно :)


ЮЮ   (2003-04-14 12:27:00) [4]

Если возвращает выборку, значит работает :-)
Если возвращает не то, значит неправильно составлен. Что ты хочешь получить из этих двух таблиц?


Соловьев   (2003-04-14 09:23:00) [5]

left join - все записи из главной + те которые есть в подчиненной
join - только те что есть и там и там.


Наверх

Титульная страница Поиск, карта сайта Написать письмо