![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 1.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam mały problem z połaczeniem danych z kilku tabel. Otóz mam dwie tabele: PRZEDMIOTY: Kod +--+------------+ |1 | J.Polski | +--+------------+ |2 | Matematyka | +--+------------+ |3 | J.Angielski| +--+------------+ oraz NAUCZYCIELE: Kod +--+------+--+--+ |id| imie |s1|s2| +--+------+--+--+ |1 | Ania |1 |3 | +--+------+--+--+ |2 |Kasia |2 |1 | +--+------+--+--+ I teraz tak: Każdy nauczyciel uczy dwóch przedmiotów, których numery id zostały podane w polach s1 oraz s2. Jak za pomocą jednego zapytania pobraz róznoczesnie wszystkie dane? Satysfakcjonowałby mnie wynik: Kod +--+------+-----------+------------+ |id| imie | s1 | s2 | +--+------+-----------+------------+ |1 | Ania |J.Polski |J.Angielski | +--+------+-----------+------------+ |2 |Kasia |Matematyka |J.Polski | +--+------+-----------+------------+ Z góry dziękuję za odpowiedzi ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
W sumie zgodnie z zasadami normalizacji baz danych nie powinieneś mięć tych pól s1, s2 w tabeli Nauczyciel. Tworzy się osobną tabelę opisującą relacje wiele do wielu (jeden nauczyciel może uczyć więcej niż jednego przedmiotu, a jeden przedmiot może być wykładany przez więcej niż jednego nauczyciela)... U Ciebie i Kasia i Ania uczą Języka polskiego... Tabela subject2teacher może wyglądać tak:
subject | teacher 1 | 2 1 | 1 3 | 1 Jednym zapytaniem możesz pobrać dane używając JOIN. Nie wiem czy to tak zadziała, ale jakoś tak to powinno wyglądać: (do Twoich tabeli) Kod SELECT nauczyciele.imie, naucyzciele.s1, nauczyliele.s2, przedmioty.nazwa JOIN LEFT przedmioty ON nauczyciele.s1 = przedmioty.id JOIN LEFT przedmioty ON nauczyciele.s2 = przedmioty.id WHERE.... Może nie działać - chciałem Cię tylk onaprowadzić... Pozdrawiam Ten post edytował ayeo 13.12.2007, 00:30:31 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
to nie zadzial na 99 %
raczej cos takiego : powim jak bym to zrobil poloczyl bym najpier z jedna kolumna a potem uzyl tego co wyjdzie jako podzapytania i poloczy z 2 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 1.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
postaram się popróbować rozwiązać to w jakiś bardziej ergonomiczny sposób, dzięki za pomysły :]
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 04:58 |