Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z łączeniem baz
grom2001
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 15.02.2005

Ostrzeżenie: (0%)
-----


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

Ten post edytował grom2001 3.09.2009, 12:04:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




mała uwaga bo nie masz pojęcia o czym piszesz:
To nie bazy, a tabele.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
thek
post
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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

Ten post edytował thek 3.09.2009, 12:11:39


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
grom2001
post
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 15.02.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
askone
post
Post #5





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

Ostrzeżenie: (0%)
-----


  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


--------------------
Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 07:09