Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z zapetlonym pytaniem
misty
post
Post #1





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


hej, mam nastepujacy problem-mam sobie baze, pare tabel.. w nich informacje o osobach. kazda osoba moze miec mame lub(i) tate lub (i) wspolmalzonka. musze wyciagnac z bazy osoba ktora ma jak najwiecej wnukow. z tego co rozumiem (i jak to sobie wyobrazam) bedzie to osoba ktora ma wspolmalzonka i ktora jest ojcem/matka dla kogos, gdzie ten 'ktos' tez musi miec wspolmalzonka i byc dla kogos ojcem/matka.. strasznie to zapetlone. wrzucilam te dane do 3ch tablic:

  1. mysql> DESCRIBE osoba;
  2. +----------------+-------------+------+-----+---------+----------------+
  3. | FIELD | Type | NULL | KEY | DEFAULT | Extra |
  4. +----------------+-------------+------+-----+---------+----------------+
  5. | id_osoba | int(11) | NO | PRI | NULL | AUTO_INCREMENT |
  6. | imie | varchar(20) | NO | | | |
  7. | nazwisko | varchar(30) | NO | | | |
  8. | data_urodzenia | date | NO | | | |
  9. | plec | char(1) | NO | | | |
  10. | zarobki | varchar(15) | YES | | NULL | |
  11. +----------------+-------------+------+-----+---------+----------------+




  1. mysql> DESCRIBE rodzice;
  2. +-----------+---------+------+-----+---------+-------+
  3. | FIELD | Type | NULL | KEY | DEFAULT | Extra |
  4. +-----------+---------+------+-----+---------+-------+
  5. | id_osoba | int(11) | NO | | | |
  6. | id_matka | int(11) | YES | | NULL | |
  7. | id_ojciec | int(11) | YES | | NULL | |
  8. +-----------+---------+------+-----+---------+-------+



  1. mysql> DESCRIBE wspolmalzonek; +------------------+---------+------+-----+---------+-------+
  2. | FIELD | Type | NULL | KEY | DEFAULT | Extra |
  3. +------------------+---------+------+-----+---------+-------+
  4. | id_osoba | int(11) | NO | | | |
  5. | id_wspolmalzonek | int(11) | YES | | NULL | |
  6. +------------------+---------+------+-----+---------+-------+



no i nie moge wyciagnac tych danych.. tak sie zastanawiam-czy na pewno moge, czy dobrze zaprojektowalam tablice? czy moglby mi ktos pomoc w tym problemie?


pzdr,
misty

Ten post edytował misty 20.07.2009, 14:23:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
misty
post
Post #2





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


no dobra, to zapytanie zwraca mi imiona rodzicow wszystkich osob. ale jaki to ma zwiazek z moim problemem? jak z tego wnukow wyciagnac?

tzn chyba tego "nie widze" po prostu. nie wiem co z czym zlozyc by wyszly wnuki. tzn ja rozumiem to tak, ze osoba o najwiekszej ilosci wnukow bedzie to osoba ktora jest matka lub ojcem i ktorej dziecko jest matka lub ojcem.. ale "nie widze" jak to zlaczyc
Go to the top of the page
+Quote Post
sowiq
post
Post #3





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Cytat(misty @ 20.07.2009, 21:39:25 ) *
[...]ale "nie widze" jak to zlaczyc
Po to podałem Ci linki - poczytaj. Jeśli to za mało, to Google -> MySQL JOIN. Znajdziesz wiele wyników zarówno po polsku jak i angielsku.

Zapytanie powinno wybrać wszystkie dzieci osoby o id = 123:
Kod
SELECT c.imie, c.nazwisko
    FROM osoby o
        LEFT JOIN osoby c ON (c.id_matka = o.id_osoby OR c.id_ojciec = o.id_osoby)
    WHERE o.id_osoby = 123
Żeby wybrać wnuki danej osoby, potrzebujesz małej modyfikacji tego zapytania. Wysil się trochę, bo nie dajemy gotowych rozwiązań. Nawet kobietom (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował sowiq 20.07.2009, 21:09:20
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 01:45