Autor Zpráva
Tomasds
Profil
Mám problém, na který asi nestačím.

Mám tabulku zakázek. Pak tabulku stavů zakázek. Zakázka se vyvíjí, má různé stavy (přidáno obchodníkem, přebráno technikem atd), všechny stavy archivuji. Takže tabulka stavů má mj. pole ID_zakazky a stavy přibývají.

A já bych teď potřeboval výpis zakázek podle aktuálního stavu. Tzn. všechny zakázky a ke každé z nich připojený poslední existující stav. Stav je číselná hodnota.

Díky za radu.
Joker
Profil
Tomasds
A kde přesně je problém?

SELECT sloupce FROM tab1 JOIN tab2 ON tab1.id = tab2.id_zakazky ORDER BY tab2.stav
Tomasds
Profil
Joker
Problém je v tom, že jsem asi na čtvrté úrovni přerušení a nemůžu to dát dohromady :)

To co píšeš, nepůjde.
Těch stavů je v tab2 pro každou zakázku více, já bych potřeboval to řazení podle nejvyššího ID ze všech stavů v tab2, které patří k dané položce v tab1.
ninja
Profil
Tak jestli to dobre chapu tak mas vztah dvou tabulek 1:n, pricemz te zajima z "n"kove tabulky jen vzdy posledni udaj:

SELECT *, MAX(s.id) FROM zakazky z LEFT JOIN stavy s ON z.id = s.id_zakazky GROUP BY z.id;
Tomasds
Profil
ninja
To je přesně ono, díky. Teď už to jen zašroubovat do toho hejna už existujících groupů a joinů, ale to nějak půjde.
Toto téma je uzamčeno. Odpověď nelze zaslat.