Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z łączeniem baz
Forum PHP.pl > Forum > Bazy danych > MySQL
grom2001
Witam

posiadam dwie tabele:

Pierwsza tabela z kodami ICD9:
icd9_id int(6) Nie
kod_icd9 int(8) Nie
opis_icd9 varchar(45) utf8_polish_ci

Druga tabela z danymi wizyty:
id int(10) UNSIGNED Nie
data date Nie
id_pacjent int(45) Nie
icd_id int(45) Nie
rodzaj_id int(45) Nie
lekarz_id int(45) Nie
skier_data date Nie
icd9_1 int(10) Nie
icd9_2 int(10) Nie
icd9_3 int(10) Nie
icd9_4 int(10) Nie
icd9_5 int(10) Nie

Jak skonstruować pytanie SQL by pod pola wartości icd9_1 do icd9_5 pokazywalo wartosci pola kod_icd9 z pierszej tabeli.

przy zapytaniu wpolach icd9_1 do icd9_5 wyrzuca mi dane z pola icd9_id a chodzi o to by wyrzucalo wartosci pola kod_icd9
  1. SELECT *, pacjenci.pesel, pacjenci.nazwisko, pacjenci.imie, pacjenci.kod, pacjenci.miasto, pacjenci.ulica, pacjenci.nr_domu,
  2. pacjenci.nr_lok, icd10.id_icd, rodzaj.idrodzaj, icd9.icd9_id
  3. FROM wizyta
  4. JOIN pacjenci ON id_pacjent=pacjentid
  5. JOIN icd10 ON icd_id=id_icd
  6. JOIN rodzaj ON idrodzaj=rodzaj_id
  7. JOIN icd9


Poprawione, pisalem szybko i z rozpędu taki byk sciana.gif
nospor
mała uwaga bo nie masz pojęcia o czym piszesz:
To nie bazy, a tabele.
thek
Po pierwsze: Czy masz pojęcie co łączysz z czym? Bo jak dla mnie to średnio sie orientujesz co tak naprawdę robisz. Pomyśl logicznie jak to ma wyglądać...
Bierzesz rekord z tabeli wizyty i dołączasz do niego tabelę kodów tak, że kod icd9 z tabeli wizyty zgadza się z kodem w tabeli kodów. Po takim połączeniu wyciągasz już z połączonych do wyświetlenia odpowiednią kolumnę. To samo robisz dla każdego innego pola z kodem icd9.
Po drugie: By mieć pewność co łączysz z czym używaj aliasów bo się pogubisz.
Po trzecie: odwołanie w stylu ON icd_id=id_icd jest chyba jakimś nieporozumieniem. Skąd ty pole id_icd wytrzasnąłeś i w jakiej tabeli? Może jestem ślepy, ale nie widzę go nigdzie smile.gif

EDIT: Bym zapomniał.. Aliasów i tak zapewne będziesz musiał użyć, bo niejednokrotnie baza mi się burzyła przy wielokrotnym JOIN, że nie wie co z czego brać winksmiley.jpg
grom2001
Cytat
Po trzecie: odwołanie w stylu ON icd_id=id_icd jest chyba jakimś nieporozumieniem. Skąd ty pole id_icd wytrzasnąłeś i w jakiej tabeli? Może jestem ślepy, ale nie widzę go nigdzie


To akurat pobiera dane kodow ICD10 z tabeli icd10 i dziala mi bez zarzutu
askone
  1. SELECT
  2. w.*,
  3. p.pesel,
  4. p.nazwisko,
  5. p.imie,
  6. p.kod,
  7. p.miasto,
  8. p.ulica,
  9. p.nr_domu,
  10. p.nr_lok,
  11. i10.id_icd,
  12. r.idrodzaj,
  13. i9a.kod_icd9,
  14. i9b.kod_icd9,
  15. i9c.kod_icd9,
  16. i9d.kod_icd9,
  17. i9e.kod_icd9
  18. FROM wizyta w
  19. JOIN pacjenci p ON p.id_pacjent=w.pacjentid
  20. JOIN icd10 i10 ON i10.icd_id=w.id_icd
  21. JOIN rodzaj r ON r.idrodzaj=w.rodzaj_id
  22. JOIN icd9 i9a ON i9a.icd9_id = w.icd9_1
  23. JOIN icd9 i9b ON i9b.icd9_id = w.icd9_2
  24. JOIN icd9 i9c ON i9c.icd9_id = w.icd9_3
  25. JOIN icd9 i9d ON i9d.icd9_id = w.icd9_4
  26. JOIN icd9 i9e ON i9e.icd9_id = w.icd9_5


Pisałem bez testowania, ale powinno to być to co chciałeś osiągnąć smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.