Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wybieranie danych z trzech tabel
Diariusz
post 20.12.2011, 21:20:52
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.07.2005

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


Witam.
Mam problem z ułożeniem prawidłowego zapytania - oto sytuacja:
mam trzy tabele
tabela 1 skrzynka_informacyjna która zawiera takie kolumny (id_info, autor_id, tresc_informacji, data_informacji)
tabela 2 uczen (id_uczen, imie, nazwisko)
tabela 3 nauczyciele (id_nauczyciel, imie_i_nazwisko)

chodzi mi o wyświetlenie dwukolumnowej tabeli wynikowej która będzie zawierała imie i nazwisko autora informacji i treść informacji - tyle że autorem może być zarówno uczen jak i nauczyciel i nazwę tę musze wyciągnąć z dwóch różnych tabel (uczen i nauczyciele) natomiast tresc_informacji jest w tabeli skrzynka informacyjna.

spróbowałem takiego oto zapytania ale coś nie tak - wyświetla mi zero wierszy

  1. $zapytanie_info = "SELECT s.tresc_informacji, s.autor_id, u.imie, u.nazwisko, n.imie_i_nazwisko FROM skrzynka_informacyjna s INNER JOIN nauczyciele n ON n.id_nauczyciel = s.autor_id INNER JOIN uczen u ON u.id_uczen = s.autor_id";


Ten post edytował Diariusz 20.12.2011, 21:21:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
mortus
post 20.12.2011, 22:25:21
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Zauważ, że przy takiej budowie bazy danych uczeń i nauczyciel mogą mieć takie samo id. Nie rozumiem, po co w ogóle taki podział. Lepiej byłoby utworzyć jedną tabelę użytkowników z kolumną rola, w której określałbyś, czy użytkownik jest uczniem, czy też nauczycielem. W ostateczności tabela użytkowników mogłaby zawierać np. tylko dane do logowania i rolę, i mogłaby być połączona relacją jeden do jednego z tabelami uczen i nauczyciele, natomiast wszędzie posługiwałbyś się identyfikatorem użytkownika.

W swoim zapytaniu zamień INNER JOIN na LEFT JOIN i powinno działać.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:40