Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie CrossTab (Pivot), Z tabela laczaca
Adi32
post
Post #1





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


(polskie znaki mi wywalilo na ubuntu)

Czesc,

Mam problem z zapytaniem typu crosstab (to w sumie 5 zapytan);

Na wstepie napisze ze te rozwiazania u mnie nie zdaja egzaminu:
http://stackoverflow.com/questions/1238277...-crosstab-query
http://stackoverflow.com/questions/1599709...b-view-in-mysql

Dostaje syntax "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM csre_profile LEFT JOIN csre_profile_data ON csre_profile.csre_profile_id"
ktory nie ma sensu.

Testowe zapytanie ktore proboje wywolac wyglada tak: (jest poprzeinaczane, robilem wszystko zeby najpierw SQL cokolwiek mi zwrocil)

  1. SET @sql = NULL;
  2.  
  3. SELECT
  4. GROUP_CONCAT(DISTINCT
  5. CONCAT(
  6. ' GROUP_CONCAT(CASE question_normalized when ', question_normalized , ' then question_value else NULL END) AS `',
  7. question_normalized, '`'
  8. )
  9. ) INTO @sql
  10. FROM csre_profile LEFT JOIN csre_profile_data ON csre_profile.csre_profile_id = csre_profile_data.csre_profile_fk
  11. LEFT JOIN csre_question ON csre_question_id=csre_profile_data.csre_question_fk;
  12.  
  13. SET @sql =
  14. CONCAT('SELECT csre_profile_id, name, email, ', @sql, '
  15. FROM csre_profile LEFT JOIN csre_profile_data ON csre_profile.csre_profile_id = csre_profile_data.csre_profile_fk
  16. GROUP BY csre_profile_id LEFT JOIN csre_question ON csre_question_id=csre_profile_data.csre_question_fk');
  17.  
  18. PREPARE stmt FROM @sql;
  19. EXECUTE stmt;
  20. DEALLOCATE PREPARE stmt;


Dane:
3 tabele.

csre_profile: csre_profile_id | name | surname .... === tu niejasnosci nie ma
csre_profile_data: csre_profile_data_id | csre_profile_fk | question_fk | question_value === csre_profile_fk to klucz z tabeli glownej, question_fk to id z tabeli ze zbiorem wartosci (ulica, plec itp), question_value to odpowiedz na pytanie (np: kobieta)
csre_question: csre_questio_id | question_name | question_normalized === question_normalized to pytanie znormalizowane bez pl znakow i spacji.

Chcialbym uzyskac swoim zapytaniem taki efekt:

id | name | gender | avatar .....
1 Zoska Kobieta http://costam

Gdzie kolumny gender i avatar sa wartosciami z tabeli csre_profile_data.

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: 24.12.2025 - 05:03