|
Тема |
Re: MySQL query problem [re: Logo] |
|
Автор |
toranaga ("razbirach") |
|
Публикувано | 05.04.03 22:55 |
|
|
Hmm, opitai tova:
1. Select f.FirmaID, o.OtdelID, s.SlujitelID
2. from tFirma f
3. left join tOtdel o on o.frFirmaID = f.FirmaID
4. left join tSlujitel s on s.frFirmaID = f.FirmaID and (s.frOtdelID = o.OtdelID or s.frOtdelId is null)
5. where f.FirmaID = 1
Не съм сигурен дали горното ще ти работи, ако не - махни условието s.frOtdelID = o.OtdelID и опитай да избегнеш дублирането с distinct f.FirmaID, o.OtdelID, s.SlujitelID или group by s.SlujitelID
Това беше по отношение на заявката ти... по отношение на структурата, имаш излишество на данни в tSlujitel, както сам си усетил - в повечето случаи frFirmaID ти е функция на frOtdelID. Вярно, че си обяснил защо така ти се налага, но според мен по-добро решение ще е да си направиш един dummy отдел за всяка фирма в tOdtel, към който да слагаш тези служители, които не принадлежат към никой отдел
|
| |
|
|
|