Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wartości pól jako nazwy kolumn tabeli wynikowej
mpowroznik
post 22.02.2011, 02:33:58
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Pyrzyce

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


Witam, szanownych forumowiczów...

Próbuję rozwiązać następujący problem

Mam 3 tabele powiązane ze sobą
  1. Tabela mpo
  2. +---------------+
  3. | id |
  4. +---------------+
  5. | id_user |
  6. +---------------+
  7. | id_parent |
  8. +---------------+

  1. Tabela mpo_wart
  2. +---------------+
  3. | id |
  4. +---------------+
  5. | id_mpo |
  6. +---------------+
  7. | id_kol |
  8. +---------------+
  9. | wart |
  10. +---------------+

  1. Tabela mpo_kol
  2. +---------------+
  3. | id |
  4. +---------------+
  5. | nazwa |
  6. +---------------+


W tabeli mpo znajduje się id_user, który stanowi identyfikator użytkownika (pobierany z joomli), oraz id_parent - identyfikator użytkownika nadrzędnego (tylko 1 poziom bez żadnych rekurencji)

W tabeli mpo_kol znajdują się nazwy pól, które administrator systemu może dodawać (imię, nazwisko, telefon, adres)

W tabeli mpo_wart znajdują się wartości

Zawartość poszczególnych tabel
  1. Tablea mpo
  2. +-----+----------+-----------+
  3. | id | id_user | id_parent |
  4. +-----+----------+-----------+
  5. | 1 | 62 | |
  6. +-----+----------+-----------+
  7. | 2 | 77 | |
  8. +-----+----------+-----------+


  1. Tabela mpo_kol
  2. +----+-----------------------+
  3. | id | nazwa |
  4. +----+-----------------------+
  5. | 1 | Imię |
  6. +----+-----------------------+
  7. | 2 | Nazwisko |
  8. +----+-----------------------+
  9. | 3 | Telefon |
  10. +----+-----------------------+


  1. Tabela mpo_wart
  2. +----+---------+---------+-------------+
  3. | id | id_mpo | id_kol | wart |
  4. +----+---------+---------+-------------+
  5. | 1 | 1 | 1 | Jan |
  6. +----+---------+---------+-------------+
  7. | 2 | 1 | 2 | Kowalski |
  8. +----+---------+---------+-------------+
  9. | 3 | 1 | 3 | 606 123 321 |
  10. +----+---------+---------+-------------+
  11. | 4 | 2 | 1 | Kaziu |
  12. +----+---------+---------+-------------+
  13. | 5 | 2 | 2 | Nowak |
  14. +----+---------+---------+-------------+
  15. | 6 | 2 | 3 | 505 132 321 |
  16. +----+---------+---------+-------------+


Pragnę uzyskać wynik w postaci
  1. +---------+-------------------+----------------------+-----------------+
  2. | id_user | imię | nazwisko | telefon |
  3. +---------+-------------------+----------------------+-----------------+
  4. | 62 | Jan | Kowalski | 606 123 321 |
  5. +---------+-------------------+----------------------+-----------------+
  6. | 77 | Kaziu | Nowak | 505 132 321 |
  7. +---------+-------------------+----------------------+-----------------+


poprzez wykonanie takiego zpaytania
  1. SELECT `mpo`.`id_user`, `k`.`nazwa`, `w`.`wart` FROM `mpo` LEFT JOIN `mpo_wart` AS `w` ON `w`.`id_mpo`=`mpo`.`id` LEFT JOIN `mpo_kol` AS `k` ON `k`.`id`=`w`.`id_kol`


otrzymuje następujący wynik
  1. +----------+------------+--------------+
  2. | id_user | nazwa | wart |
  3. +----------+------------+--------------+
  4. | 62 | imię | Jan |
  5. +----------+------------+--------------+
  6. | 62 | nazwisko | Kowalski |
  7. +----------+------------+--------------+
  8. | 62 | telefon | 606 123 321 |
  9. +----------+------------+--------------+
  10. | 77 | imię | Kaziu |
  11. +----------+------------+--------------+
  12. | 77 | nazwisko | Nowak |
  13. +----------+------------+--------------+
  14. | 77 | telefon | 505 132 321 |
  15. +----------+------------+--------------+


Z góry dzięki za pomoc.
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 02:02