Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Relacje między tabelami
casperii
post
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


zachodzę sobie w głowę jak powinno wyglądać dobrze napisane zapytanie do mysqla:
Są dwie tabele w których jest to samo ID, chce wyświetlić wszystkie rekordy , ale jeśli w drugiej tabeli jest to samo ID wyświetli się coś extra (np podświetlę , pogrubie sobie etc).

  1. SELECT * FROM tabela1, tabela 2 WHERE tabela1.id = tabela2.id


wyświetli nam tylko te gdzie relacja pomiędzy niby jest spójna.
Natural Join też odpada.

Dla samego połączenia tabel wystarczy:
  1. SELECT * FROM tabela1, tabela 2


a jak bym chciał w miejsce gwiazdki zrobić alias As podswietlenie ?

Czyżby tak:
  1. SELECT `tabela1`.`id` =`tabela2`.`id` AS `podswietlenie` FROM tabela1, tabela 2



Ten post edytował casperii 11.06.2017, 19:06:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rufuspl
post
Post #2





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 17.06.2017

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


Cześć.
Nie zakładam nowego wątku, bo wygląda mi na to, że moje pytanie jest pokrewne do tematu tego wątku.
Robię aplikację webową do pracy, w której w tabeli "pacjent" jako klucze obce używam dwa razy id z innej tabeli - "personel" (jest to 2x id lekarza z tabelki "personel", bo jeden lekarz kieruje pacjenta a drugi go kwalifikuje). Na liście zabiegów mają pojawić się zamiast id lekarzy ich nazwiska. Jak zrobić SELECT, aby uzyskać nazwiska tych dwóch lekarzy?

  1. Struktura tabeli dla tabeli `pacjent`
  2. --
  3.  
  4. CREATE TABLE IF NOT EXISTS `pacjent` (
  5. `id_pac` int(5) NOT NULL AUTO_INCREMENT,
  6. `pac_nazwisko` varchar(50) COLLATE utf8_polish_ci NOT NULL,
  7. `pac_imie` varchar(20) COLLATE utf8_polish_ci NOT NULL,
  8. `id_plec` int(1) NOT NULL,
  9. `data_ur` date NOT NULL,
  10. `pesel` varchar(11) COLLATE utf8_polish_ci NOT NULL,
  11. `ks_gl_nr` int(3) NOT NULL,
  12. `ks_gl_rok` int(4) NOT NULL,
  13. `id_dok` char(1) COLLATE utf8_polish_ci NOT NULL,
  14. `dok_toz_nr` char(20) COLLATE utf8_polish_ci NOT NULL,
  15. `data_zab` date NOT NULL,
  16. `id_tryb_lecz` int(1) NOT NULL,
  17. `id_jos_kier` int(2) NOT NULL,
  18. `id_personel_lek_kier` int(2) NOT NULL,
  19. `id_personel_lek_kwal` int(2) NOT NULL,
  20. `id_icd9` int(5) NOT NULL,
  21. `opis_dod` text COLLATE utf8_polish_ci NOT NULL,
  22. `uwagi` text COLLATE utf8_polish_ci NOT NULL,
  23. `id_status` int(1) NOT NULL,
  24. PRIMARY KEY (`id_pac`),
  25. KEY `id_plec` (`id_plec`),
  26. KEY `id_dok` (`id_dok`),
  27. KEY `id_rodz_lecz` (`id_tryb_lecz`),
  28. KEY `id_jos_kier` (`id_jos_kier`),
  29. KEY `id_lek_kier` (`id_personel_lek_kier`),
  30. KEY `id_icd9` (`id_icd9`),
  31. KEY `id_status` (`id_status`)
  32. )


  1. Struktura tabeli dla tabeli `personel`
  2. --
  3.  
  4. CREATE TABLE IF NOT EXISTS `personel` (
  5. `id_personel` int(2) NOT NULL AUTO_INCREMENT,
  6. `per_imie` char(20) COLLATE utf8_polish_ci NOT NULL,
  7. `per_nazwisko` char(50) COLLATE utf8_polish_ci NOT NULL,
  8. `nr_prawa` char(10) COLLATE utf8_polish_ci NOT NULL,
  9. `id_jos_kier` int(2) NOT NULL,
  10. `id_personel_typ` int(1) NOT NULL,
  11. PRIMARY KEY (`id_personel`),
  12. KEY `id_jos_kier` (`id_jos_kier`),
  13. KEY `id_jos_kier_2` (`id_jos_kier`),
  14. KEY `id_grupyz` (`id_personel_typ`)
  15. )


Na tą chwilę używam inner/left join i odpowiednie klucze obce ale w ten sposób potrafię wyciągnąć tylko jednego lekarza.

Ten post edytował rufuspl 17.06.2017, 13:21:54
Go to the top of the page
+Quote Post

Posty w temacie
- casperii   [MySQL][PHP]Relacje między tabelami   11.06.2017, 19:02:28
- - nospor   LEFT JOIN   11.06.2017, 19:35:58
- - casperii   No dobra ale jest jedno ale: [SQL] pobierz, plaint...   11.06.2017, 23:28:40
- - nospor   Jesli uzywasz grupowania i chcesz w select pobrac ...   12.06.2017, 08:45:28
- - casperii   @nospor : [SQL] pobierz, plaintext SELECT *, `id`...   12.06.2017, 20:38:04
- - nospor   Zjadles GROUP BY... skup sie troche   13.06.2017, 08:45:37
- - casperii   @nospor ok , racja: [SQL] pobierz, plaintext SEL...   13.06.2017, 18:55:37
|- - bostaf   Cytat(casperii @ 13.06.2017, 19:55:37...   14.06.2017, 20:11:00
- - Pyton_000   Zamiast pytać o głupooty to byś to lepiej sprawdzi...   13.06.2017, 21:14:24
- - casperii   @Pyton_000 gdyby to działało to bym nie pytał tut...   14.06.2017, 19:05:42
- - casperii   @bostaf jeśli nie zauważyłeś to są przykładowe ta...   14.06.2017, 20:49:58
|- - bostaf   Cytat(casperii @ 14.06.2017, 21:49:58...   14.06.2017, 21:25:41
- - trueblue   Podane przez Ciebie zapytanie na pewno nie zwróci ...   14.06.2017, 21:12:55
- - rufuspl   Cześć. Nie zakładam nowego wątku, bo wygląda mi na...   17.06.2017, 12:54:21
- - Pyton_000   bo masz użyć 2x left join.   17.06.2017, 13:24:22
|- - rufuspl   Cytat(Pyton_000 @ 17.06.2017, 14:24:2...   17.06.2017, 13:29:10
- - Pyton_000   dodajesz aliasy w zapytaniu w SELECT dla nazwisk   17.06.2017, 14:39:55
|- - rufuspl   Cytat(Pyton_000 @ 17.06.2017, 15:39:5...   17.06.2017, 22:09:50
- - Pyton_000   KodSELECT tabel1.id AS ID_1, tabela2.id AS ID_2   18.06.2017, 08:29:11
|- - rufuspl   Cytat(Pyton_000 @ 18.06.2017, 09:29:1...   18.06.2017, 12:23:41
- - Pyton_000   Wyraźnie napisałem że masz zrobić 2x left join do ...   18.06.2017, 14:23:34
- - rufuspl   Cytat(Pyton_000 @ 18.06.2017, 15:23:3...   18.06.2017, 17:46:22


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

 



RSS Aktualny czas: 8.10.2025 - 08:12