Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] JOIN i order
grzesiek_g
post
Post #1





Grupa: Zarejestrowani
Postów: 249
Pomógł: 30
Dołączył: 18.07.2007

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


Witam

Mam zapytanie SQL w postaci:
  1. SELECT app.id_application, app.title, app.description, app.time, GROUP_CONCAT(DISTINCT u.email ORDER BY u.email SEPARATOR ', ' ) AS experts,
  2. org.name,
  3. GROUP_CONCAT(DISTINCT sc.STATUS ORDER BY sc.id_status_change ASC SEPARATOR '|' ) AS STATUS
  4.  
  5. FROM `applications` AS app
  6.  
  7. LEFT JOIN application_expert AS aex ON ( aex.id_application = app.id_application )
  8. LEFT JOIN users AS u ON ( aex.id_user = u.id_user )
  9. LEFT JOIN organisations AS org ON ( org.id_organisation = app.id_organisation)
  10. JOIN status_changes AS sc ON ( sc.id_application = app.id_application AND sc.STATUS = 'assigned' OR sc.STATUS = 'not assigned' )
  11.  
  12. GROUP BY app.id_application


Problem występuje w ostatnim złączeniu - status_changes.

Tabela status_changes:
-----------------------------
| id_status_change PK|
| id_application FK |
| status |
-----------------------------

Relacja tabeli applications do status_changes to jeden do wielu. Czyli każdemu rekordowi z tabeli applications przypada dokładnie jeden lub więcej rekordów z tabeli status_changes.

Chcę uzyskać ostatnio przydzielony status i to mi się udało (dostaję co prawda ciąg przedzielony znakami "|" ale to nie problem), jednak nie wiem jak zrobić filtrowanie po statusach.

Próbowałem to zrobić w JOIN jak napisane jest wyżej ale zwróci mi to nie tylko ostatnio przydzielony status, ale wszystkie wartości pola status odpowiadające jednemu rekordowi z tabeli applications.

Trochę zamotałem ale mam nadzieję, że ktoś zrozumie.

// edit
Chyba nie da się tak zrobić, raczej zrobię w applications kolumnę last_status z odwołaniem do tabeli status_changes.

Ten post edytował grzesiek_g 17.09.2008, 11:35:27


--------------------
Warsztat: Ubuntu 12.10, PHPStorm
http://vertoo.pl
Go to the top of the page
+Quote Post

Posty w temacie
- grzesiek_g   [MySQL] JOIN i order   17.09.2008, 11:04:23
- - bliitz   a ORDER BY .... DESC LIMIT 1?   17.09.2008, 12:52:09


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 Aktualny czas: 19.08.2025 - 05:22