Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Połączenie 3 tabel, powtarza rekordy
neo1986kk
post
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


projects_points - ogólne nazwy punktów projektu
//id
//name
//important
//mainproject

item_projects_points - punkty w danym projekcie
//id
//project
//status

item_projects - projekty
//id
//item

No dobra to trochę wyjaśnię, w tabeli item_projects zapisuję który projekt jest przypisany do danego produktu
W tabeli projects_points są zdefiniowane punkty projektu, a w tabeli item_projects_points są zapisywane statusy punktów (zrobiony, nie zrobiony)

Chciałbym pobrać z bazy te dane w ten sposób żeby pokazywał mi nazwę punktu i status w danym produkcie


  1. SELECT projects_points.name, item_project_points.STATUS
  2. FROM item_project_points
  3. LEFT JOIN item_projects ON item_project_points.project = item_projects.id
  4. RIGHT JOIN projects_points ON item_projects.project = projects_points.mainproject
  5. WHERE item_projects.item =73
  6. GROUP BY item_project_points.id
  7. LIMIT 0 , 30


Takie zapytanie pokazuje dobrze statusy, ale nazwa punktu jest ciągle z pierwszego rekordu


  1. SELECT projects_points.name, item_project_points.STATUS
  2. FROM item_project_points
  3. LEFT JOIN item_projects ON item_project_points.project = item_projects.id
  4. RIGHT JOIN projects_points ON item_projects.project = projects_points.mainproject
  5. WHERE item_projects.item =73
  6. GROUP BY projects_points.id
  7. LIMIT 0 , 30


Tutaj sytuacja jest odwrotna, nazwy są zgodne z id punktu, ale status ciągle z pierwszego

Zamieniałem LEFT join na RIGHT join, zamieniałem kolejność zapytania, ale to nic nie zmienia....

Ten post edytował neo1986kk 28.08.2013, 07:43:13
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: 23.08.2025 - 01:20