Mam takie tabele i relacje między nimi:
Generalnie problem tkwi w tym aby wyciągnąć dane z tabel: osiedle, nieruchomosc, zaosby nie zależnie w której z tabel 'pośredniczych' zameldodany, wlasciciel, ryczalt, czlonek, zamieszkaly wskazany użytkownik z tabeli users się znajduje.
Po długiej walce wydumałem:
SELECT *
FROM
`users`
LEFT OUTER JOIN `czlonek` ON (`users`.`user_id` = `czlonek`.`users_id`)
RIGHT OUTER JOIN `zasoby` ON (`zasoby`.`id_zasobu` = `czlonek`.`zasoby_id`)
LEFT OUTER JOIN `ryczalt` ON (`zasoby`.`id_zasobu` = `ryczalt`.`zasoby_id`)
AND (`ryczalt`.`users_id` = `users`.`user_id`)
LEFT OUTER JOIN `wlasciciel` ON (`zasoby`.`id_zasobu` = `wlasciciel`.`zasoby_id`)
AND (`wlasciciel`.`users_id` = `users`.`user_id`)
LEFT OUTER JOIN `zameldowany` ON (`zasoby`.`id_zasobu` = `zameldowany`.`zasoby_id`)
AND (`zameldowany`.`users_id` = `users`.`user_id`)
LEFT OUTER JOIN `zamieszkaly` ON (`zasoby`.`id_zasobu` = `zamieszkaly`.`zasoby_id`)
AND (`zamieszkaly`.`users_id` = `users`.`user_id`)
RIGHT OUTER JOIN `nieruchomosci` ON (`zasoby`.`nieruch_id` = `nieruchomosci`.`id_nieruch`)
RIGHT OUTER JOIN `osiedla` ON (`nieruchomosci`.`osiedle_id` = `osiedla`.`id_osiedla`)
WHERE
`users`.`user_id` = 27
aczkolwiek jak widać potrafię wyciągnąć dane jeśli! user_id jest w tabeli **czlonek **- a to peszek... Czy jest to w ogóle możliwe, czy po prostu spieprzyłem tabele - oby nie:-)? Ktoś podpowie ?:)