Ага, а вот и логический выверт из-за которого ты так мучаешься.
Цитата:
Изначально опубликовано 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-методы и программируй.