Mam sobie takie zapytanko:
  1. SELECT
  2. f.id, f.version
  3. ,w.name AS state
  4. ,m.name AS city
  5. FROM friends f
  6. ,states w
  7. ,cities m
  8. WHERE w.id = f.state_id AND m.id = f.city_id AND f.version = (
  9. SELECT
  10. MAX(f2.version) --version is INT (NOT NULL). Also it is a second KEY
  11. FROM friends f2
  12. WHERE f2.id = f.id --id is INT. It is a first KEY in table
  13. ) AND f.approved IS NOT NULL --approved is DATETIME, can be NULL
  14. ORDER BY f.added DESC --added is DATETIME


Nie pasuje mi tu to, że jest podzapytanie do wybrania najwyższej wersji. A całe zapytanko ma wybierać listę friendsów z najnowszymi (najwyższymi) zatwierdzonymi (approved IS NOT NULL) wersjami.

czyli np. mając tabele:
ID | VER | APPROVED
-------------------
1 | 1 | 2009-01-25
1 | 2 | 2009-01-30
1 | 3 | NULL
2 | 1 | NULL
3 | 1 | 2009-01-01

ma wybrać :
ID | VER | APPROVED
--------------------
1 | 2 | 2009-01-30
3 | 1 | 2009-01-01