Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Laczenie tabel
Forum PHP.pl > Forum > Przedszkole
Flybro
Witam,

Mam pytanie odnoscie laczenia tabel. W jaki sposob zbudowac zapytanie z nastepujacymi warunkami:
podac "nazwisko premiera", "partie ktorej przewodzili" oraz "date kiedy ostatecznie utracili stanowisko".

W uzyciu mam dwie tabele:

1. prime_minister
  1. +-------------+------------+
  2. | pm_name | yrs_served |
  3. +-------------+------------+
  4. | Barton E | 2.72 |
  5. | Bruce S M | 6.71 |
  6. | Chifley J B | 4.42 |
  7. | Cook J | 1.23 |
  8. | Curtin J | 3.75 |
  9. | Deakin A | 4.84 |
  10. | Fadden A W | 0.11 |
  11. | Fisher A | 4.81 |
  12. | Forde F M | 0.02 |
  13. | Fraser J M | 7.33 |
  14. | Gorton J G | 3.17 |
  15. | Hawke R J L | 8.78 |
  16. | Holt H E | 1.88 |
  17. | Hughes W M | 7.29 |
  18. | Keating P J | 0 |
  19. | Lyons J A | 7.25 |
  20. | McEwen J | 0.06 |
  21. | McMahon W | 1.72 |
  22. | Menzies R G | 18.41 |
  23. | Page E C G | 0.05 |
  24. | Reid G H | 0.87 |
  25. | Scullin J H | 2.17 |
  26. | Watson J C | 0.28 |
  27. | Whitlam E G | 2.92 |
  28. +-------------+------------+


2. ministry
  1. +-------------+------------------+---------+
  2. | pm_name | party | yr_comm |
  3. +-------------+------------------+---------+
  4. | Barton E | Protectionist | 1901 |
  5. | Bruce S M | Nationalist | 1923 |
  6. | Cook J | Liberal | 1913 |
  7. | Deakin A | Protectionist | 1903 |
  8. | Deakin A | Protectionist | 1905 |
  9. | Deakin A | Protectionist | 1909 |
  10. | Fadden A W | Country | 1941 |
  11. | Fraser J M | Liberal | 1975 |
  12. | Fraser J M | Liberal | 1975 |
  13. | Fraser J M | Liberal | 1980 |
  14. | Fraser J M | Liberal | 1982 |
  15. | Fraser J M | Liberal | 1977 |
  16. | Gorton J G | Liberal | 1968 |
  17. | Gorton J G | Liberal | 1968 |
  18. | Gorton J G | Liberal | 1969 |
  19. | Holt H E | Liberal | 1966 |
  20. | Holt H E | Liberal | 1966 |
  21. | Hughes W M | Nationalist | 1918 |
  22. | Hughes W M | Nationalist | 1917 |
  23. | Hughes W M | National labor | 1916 |
  24. | Lyons J A | United Australia | 1938 |
  25. | Lyons J A | United Australia | 1932 |
  26. | McEwen J | Country | 1967 |
  27. | McMahon W | Liberal | 1971 |
  28. | Menzies R G | Liberal | 1949 |
  29. | Menzies R G | United Australia | 1939 |
  30. | Menzies R G | United Australia | 1940 |
  31. | Menzies R G | United Australia | 1940 |
  32. | Menzies R G | Liberal | 1951 |
  33. | Menzies R G | Liberal | 1956 |
  34. | Menzies R G | Liberal | 1958 |
  35. | Menzies R G | Liberal | 1963 |
  36. | Page E C G | Country | 1939 |
  37. | Reid G H | Free Trade | 1904 |
  38. +-------------+------------------+---------+


Cheers,
Flybro
mortus
SELECT ... LEFT JOIN ... USING (pm_name)
Choć zastanawiam się, dlaczego pm_name powtarza się w obu tabelach, bo chyba raczej tabela ministry powinna korzystać z identyfikatorów typu całkowitego. Dlaczego? Odpowiem pytaniem, a co będzie, jeśli ktoś zostanie ministrem drugi raz?

Edycja:
Nie zauważyłem, że już tak jest, a co oznacza, że nie ma tutaj zdefiniowanych relacji, a są one jedynie "domyślne". Niemniej musisz użyć zapytania w przedstawionym wyżej "stylu".
#luq
Tak jak piszę @mortus - baza jest źle zaprojektowana
Flybro
Cytat(mortus @ 8.05.2012, 00:57:31 ) *

Dzieki, to mi wystarcza zaby zaczac. A w jaki sposob mozna pobliczyc kiedy utracili stanowisko i polaczyc to wszystko w jeden statement?

Cheers,
Flybro
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.