Autor | Zpráva | ||
---|---|---|---|
Tomasds Profil |
#1 · Zasláno: 17. 1. 2009, 14:30:00
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 |
#2 · Zasláno: 17. 1. 2009, 14:36:00
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 |
#3 · Zasláno: 17. 1. 2009, 14:40:52
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 |
#4 · Zasláno: 17. 1. 2009, 14:54:18 · Upravil/a: ninja
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 |
#5 · Zasláno: 17. 1. 2009, 14:59:14
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. |
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0