NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Petr Jančálek:27.10.2017 18:27

Ahojte, potřeboval bych pomoct s jedním SQL dotazem. Vůbec netuším, jak na něj.
Jde o to, že si uživatelé mohou vytvořit projekt, nahrát do něj jaké soubory, napsat k němu popisk, atd... . Tyto projekty musí být obnovovatelné až 3 verze dozadu. Takže jsem si vytvořil 2 tabulky.
project:

id content owner description

project_version

id version status description content project

Project má vazbu OneHasMany na tabulku project_version.
Podle sloupcu status se verze filtrují v jednotlivých sekcí.

Nuže mám sekci, kde jsou pouze verze projektů s statusem 2, takže potřebuju vytvořit příkaz, který vybere řádky se statusem 2 a nejvyšší verzí v daném projektu.

Dám příklad. Máme projekt, který má 3 verze.

  • verze 1 má status 2
  • verze 2 má status 2
  • verze 3 má status 0

Takže dotaz vybere verzi 2, protože má nejvyšší verzi a zároveň má status 2. Projekt může mít pouze 3 verze. Když se uživatel pokusí přidat 4. verzi, umaže se verze 1.
Moc děkuji za vaše rady.

 
Odpovědět
27.10.2017 18:27
Avatar
Petr Jančálek:27.10.2017 18:38

Ještě bych upřesnil, že se jedná o výpis se stránkováním. Každý projekt i projekt_version má ještě kolonku created_at s typem DATETIME.

 
Nahoru Odpovědět
27.10.2017 18:38
Avatar
plelovsky
Člen
Avatar
plelovsky:29.10.2017 15:26
SELECT *
FROM project_version
WHERE
        project = <daný projekt>
        AND
        status = 2
        AND
        version = (
                SELECT MAX(version)
                FROM project_version
                WHERE
                        project = <daný projekt>
                        AND
                        status = 2
        )
 
Nahoru Odpovědět
29.10.2017 15:26
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.