Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Odpowiednie wyświetlenie danych
llepec
post 3.07.2013, 13:01:17
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 3.07.2013
Skąd: Kraków

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


Witam,

Jestem początkujący w temacie baz danych. Nie mogę sobie poradzić z następującym problemem:

Mam dwie tabele:

employees ( employee_id PK, first_name, last_name, department_id FK )
departments ( department_id PK, department_name )

Jak wiadomo, wielu pracowników może mieć przypisanych ten sam department_id.

A ja mam wykonać następującą rzecz:

np.

--------------------------------
Nazwa_działu_01
--------------------------------
imie i nazwisko pracownika
.
.
.
.
--------------------------------
Nazwa_działu_02
--------------------------------
imie i nazwisko pracownika
.
.
.
.
itp.
itp.

Tak jak mówiłem, robię to dopiero od paru dni, jestem zielony w temacie.
Na razie jedyne co potrafię z tym zrobić, to wyświetlić w następujący sposób:

  1. SELECT d.department_name, e.first_name, e.last_name FROM employees e, departments d WHERE e.department_id = d.department_id;


Proszę o pomoc :)

  1. SELECT A FROM (
  2. SELECT '----------------' AS A, department_name, 1 AS B FROM departments
  3. UNION ALL
  4. SELECT department_name, department_name, 2 FROM departments
  5. UNION ALL
  6. SELECT '----------------', department_name, 3 FROM departments
  7. UNION ALL
  8. SELECT e.first_name || ' ' || e.last_name, d.department_name, 4 FROM employees e, departments d WHERE e.department_id = d.department_id
  9. UNION ALL
  10. SELECT '----------------', department_name, 5 FROM departments
  11. ) ORDER BY department_name, B;


Problem solved.

Ten post edytował llepec 3.07.2013, 13:03:01
Go to the top of the page
+Quote Post
nospor
post 3.07.2013, 13:07:02
Post #2





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Zle to rozwiazales

Tu masz rozwiazanie prawidlowe
http://nospor.pl/grupowanie-wynikow.html


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
llepec
post 3.07.2013, 14:06:46
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 3.07.2013
Skąd: Kraków

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


Czemu źle skoro działa dobrze? tongue.gif
Go to the top of the page
+Quote Post
nospor
post 3.07.2013, 14:09:09
Post #4





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Ponoc na rzesach tez da sie chodzic co nie znaczy, ze jest to wygodne....

Tworzysz tyle zapytan ile jest departamentow, co jest kiepskim rozwiazaniem. Jak ci sie kiedys zmieni liczba departamentow to bedziesz musial zmieniac zapytanie.

Rozwiazanie co ci podalem jest uniwersalne, jest to jedno zapytanie i jest szybsze. Ale Twoja sprawa.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
llepec
post 3.07.2013, 14:56:35
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 3.07.2013
Skąd: Kraków

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


No chyba nie do końca rozumiesz to zapytania, które napisałem wyżej. Nie Tworzę tyle zapytań ile mam departamentów... Zapytanie to będzie działało dla 100 i 200 departamentów. W mojej bazie jest ich 18, niektóre są puste (bez pracowników) i działa to bez zarzutu. A jeżeli chodzi o kosztowność zapytania, to nie jest duża.
Go to the top of the page
+Quote Post
nospor
post 3.07.2013, 15:01:33
Post #6





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




No coz, zmylilo mnie robienie 5 zapytan z departamentow i numerowanie ich od 1 do 5. I tak, nie rozumiem tego zapytania i nawet nie chce smile.gif
Tak czy siak twoje rozwiazanie jest wolniejsze bo wykonuje kilka SELECTow smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
llepec
post 3.07.2013, 20:49:12
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 3.07.2013
Skąd: Kraków

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


Tak czy siak, dzięki za kolejny pomysł smile.gif
Pozdrawiam.
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: 27.04.2024 - 13:18