Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wybieranie danych z trzech tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
Diariusz
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";
mortus
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ć.
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.