Показать сообщение отдельно
Старый 28.02.2003, 17:00   #21  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Ага, а вот и логический выверт из-за которого ты так мучаешься.
Цитата:
Изначально опубликовано Andronov
select D.*, M1.SomeField, M2.SomeField
from
Detail D inner join
Master1 M1 on (D.M1 = M1.ID) inner join
Master2 M2 on (D.M2 = M2.ID)
Дело в том, что inner join предполагает, что в M1 может быть несколько записей с одинаковым идентификатором. В этом случае запрос свяжет одну запись из D с несколькими записями из M1. И покажет все это безобразие.

Наверняка ты не это имел в виду. Но тогда запрос должен быть exist join!
А это совсем другая связь. И другие проблемы.

Ты конечно можешь сказать, что у тебя уникальность по ID. Но ЗАПРОС то об этом не знает!

В общем, если ты не хочешь писать dysplay-методы то делай в форме три грида и работай по innerJoin. Тогда не нужно вообще никакого программирования.

Если не хочешь то используй стандартное поведение tooltip. Тоже без программирования.

Или пиши display-методы и программируй.