SQL Niezdarne próby wyciągnięcia danych z kilku powiązanych tabel

0

Mam takie tabele i relacje między nimi:
user image

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 ?:)

0

masz błąd w projekcie BD - zameldodany, wlasciciel, ryczalt, czlonek, zamieszkaly to powinna być jedna tabela z dodatkowym polem typ czy jak je sobie tam nazwiesz + do tego tabela słownikowa (id i opis)

0

@Misiekd - dziękuję za odpowiedź i dobrą poradę! życzę dobrej nocy:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1